1.Collection中的方法
Collection表示一組物件,他是集中、收集的意思,Collection介面有兩個子介面List和Set介面
Cooleantion中的方法:
1.boolean add(Object element):增加元素到容器
2.boolean remove(Object element):從容其中洗掉元素
3.boolean contains(Object element):容器中是否包含該元素
4.int size():容器中元素的數量
5.boolean isEmpty():容器是否為空
6.void clear():清空容器中所有元素
7.Iterator iterator():獲得迭代器,用于遍歷所有元素
8.boolean containsAll(Collection c):本容器是否包含C容器中的所有元素
9.boolean addAll(Collection c):將容器C中所有元素增加到本容器
10.boolean remove(Collection c):移除本容器和容器C中都包含的元素
11.boolean retainAll(Collection c):取本容器和容器C中都包含的元素,移除非交集元素
12.Object[] toArray() :轉化成Object陣列
例(基本方法):

例(數學集合相關的方法):

2.List
List是有序、可重復的容器,
有序:List中的每個元素都有索引標記,可以根據元素的索引標記(在List中的位置)訪問元素,從而精確控制這些元素,
可重復:List允許加入重復的元素,更確切地講,List通常允許滿足e1.equals(e2)的元素重復加入容器
List介面常用的實作類有3個:ArrayList、LinkedList和Vector,
List除了可以使用Collection介面的方法,List多了一些跟順序(索引)相關的方法:
1.void add(int index,Object element):在指定位置插入元素,以前的元素全部后移
2.Object set(int index,Object element):修改指定位置的元素
3.Object get(int index):回傳指定位置的元素
4.Object remove(int index):洗掉指定位置的元素,后面元素全部前移一位
5.int indexOf(Object o):回傳第一個匹配元素的索引,如果沒有該元素,回傳-1
6.int lastIndexOf(Object o):回傳最后一個匹配的元素的索引,如果沒有該元素,回傳-1
例:

3.ArrayList的底層實作
ArrayList底層是用陣列實作的存盤,特點:查詢效率高,增刪改效率低,執行緒不安全(Vevtor安全),比較常用,
陣列長度有限,而ArrayList是可以存放任意數量的物件,長度不受限制,是怎么實作的呢?
使用陣列的擴容,當陣列長度不夠了,默認定義一個原先的陣列1/2大小的陣列(10變成15),再將原陣列內容拷貝至新陣列,無限回圈,
4.LinkedList的底層實作
LinkedList底層是雙向鏈表實作存盤的,特點:查詢效率低,增刪改效率高,執行緒不安全,
雙向鏈表也叫雙鏈表,是鏈表的一種,他的每個資料節點都有兩個指標,分別指向前一個節點和后一個節點,
所以,從雙向鏈表中的中的任意節點開始,都可以很方便的找到所有節點
5.Vector的底層實作
Vector的底層實作還是陣列,相關的方法都加入同步檢查,因此執行緒安全,效率低,
比如indexOf方法就加入了synchronized同步標記
public synchronized int indexOf (Object o,int index){
//略
}
6.如何選用ArrayList、LinkedList、Vector?
1.需要執行緒安全時,使用Vector,
2.不存在執行緒安全時,并在查找時多用ArrayList(常用)
3.不存在執行緒安全時,增加和洗掉元素多用LinkedList,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/155848.html
標籤:Java
上一篇:java怎么就能跨平臺了呢
