23.List接口實作類:
List接口繼承了Collection接口,它是一個允許存在重複項的有序集合。
1>實作類ArrayList:
ArrayList類支援可随需要而增長的動态數組。數組清單以一個原大小被建立,當超過了它的大小,
類集自動增大,當對象被删除後,數組就可以縮小。
優點:ArrayList類對于使用索引取出元素用較高的效率,他可以用索引快速定位對象。
缺點:ArrayList類對于元素的删除或插入速度較慢。
構造方法:
· ArrayList(): 構造一個初始容量為10的空清單。
· ArrayList(Collection c): 構造一個包含指定Collection的元素清單,這些元素是按照該Collection的疊代器傳回它們
的順序排列的。
· ArrayList(int capacity): 構造一個初始容量為capacity的空數組, 當元素被迫加到數組類表上時,容量會自動增加。
ArrayList類的用法例子:
輸出結果:
c1: [0, 1, 2, 3, 4, 6]
c2: [[0, 1, 2, 4, 6], hello]
Iterator 周遊 c2: [0, 1, 2, 4, 6]
Iterator 周遊 c2: hello
c3: [0, 1, 2, 4, 6, hello]
Iterator 周遊 c2: 0
Iterator 周遊 c2: 1
Iterator 周遊 c2: 2
Iterator 周遊 c2: 4
Iterator 周遊 c2: 6
2>實作類LinkedList:
LinkList容器類通過連接配接指針來關聯前後兩個元素。
構造方法:
· LinkList(): 建立一個空的連接配接清單。
· LinkList(Collection c): 建立一個清單,該清單有集合c中的元素初始化。
下面用例子示範LinkList的一些方法:
顯示初始化後ll的内容: [d, e, f, g]
顯示添加操作後的ll内容: [b, a, d, e, f, g, z]
顯示删除操作後ll的内容: [a, e, f]
顯示設定操作後ll的内容: [a, e, eChanged]
3>實作類Vector:
Vector類提供了實作可增長和縮短的數組功能,其與ArrayList類的操作大多數相同,差別在于Vector類是線程同步的。
Vector類的構造方法:
· Vector(): 構造一個空向量,其内部數組的大小為10,标準增量為0。
· Vector(Collection c): 構造一個包含指定集合中的元素的向量,這些元素按其集合的疊代器傳回元素順序排列。
· Vector(int initialCapacity): 使用指定的初始容量和等于0的增量構造一個空向量。
· Vector(int initialCapacity, int capacityIncrement): 使用指定的初始容量和容量增量構造一個空向量。
Vector的方法:
· addElement(Object obj): 把元件添加到向量的尾部,同時向量容
量比以前大1。
· insertElementAt(Object obj, int index): 把元件插入到指定索引
處,此後的所有内容向後移動一位。
· setElementAt(Object obj, int index): 把元件添加到指定索引處此
處原先的元素被替換。
· removeElemnet(Object obj): 把向量中含有的本元件移除。
· removeAllElements(): 把向量中所有的元件移除。
下面使用例子示範Vector的方法:
顯示Vector的初始值: [one, two, three]
顯示插入元素後Vector的值: [zero, one, two, oop, three]
顯示修改後Vector的值:[zero, one, two, three, four]
顯示删除指定元素後Vector的值: [zero, one, two]
顯示删除所有元素後Vector的值: []
注:所有的Java集合都位于java.util包中,另外Java集合中不能存放基本類型資料,而隻能存放對象的引用。