java 9.11Collections工具類及容器總結
Collections工具類
類 java.util.Collections 提供了對Set、List、Map進行排序、填充、查找元素的輔助方法。
1. void sort(List) //對List容器內的元素排序,排序的規則是按照升序進行排序。
2. void shuffle(List) //對List容器內的元素進行隨機排列。
3. void reverse(List) //對List容器內的元素進行逆續排列 。
4. void fill(List, Object) //用一個特定的對象重寫整個List容器。
5. int binarySearch(List,Object)//對於順序的List容器,採用折半查找的方法查找特定對象。
Advertisements
【示例9-23】Collections工具類的常用方法
public class Test {
public static void main(String[] args) {
List<String> aList = new ArrayList<String>();
for (int i = 0; i < 5; i++){
aList.add("a" + i);
}
System.out.println(aList);
Collections.shuffle(aList); // 隨機排列
System.out.println(aList);
Collections.reverse(aList); // 逆續
Advertisements
System.out.println(aList);
Collections.sort(aList); // 排序
System.out.println(aList);
System.out.println(Collections.binarySearch(aList, "a2"));
Collections.fill(aList, "hello");
System.out.println(aList);
}
}
執行結果如圖9-31所示:
容器總結
1. Collection 表示一組對象,它是集中、收集的意思,就是把一些數據收集起來。
2. Collection介面的兩個子介面:
1) List中的元素有順序,可重複。常用的實現類有ArrayList、LinkedList和 vector。
Ø ArrayList特點:查詢效率高,增刪效率低,線程不安全。
Ø LinkedList特點:查詢效率低,增刪效率高,線程不安全。
Ø vector特點:線程安全,效率低,其它特徵類似於ArrayList。
2) Set中的元素沒有順序,不可重複。常用的實現類有HashSet和TreeSet。
Ø HashSet特點:採用哈希演算法實現,查詢效率和增刪效率都比較高。
ØTreeSet特點:內部需要對存儲的元素進行排序。因此,我們對應的類需要實現Comparable介面。這樣,才能根據compareTo()方法比較對象之間的大小,才能進行內部排序。
3. 實現Map介面的類用來存儲鍵(key)-值(value) 對。Map介面的實現類有HashMap和TreeMap等。Map類中存儲的鍵-值對通過鍵來標識,所以鍵值不能重複。
4. Iterator對象稱作迭代器,用以方便的實現對容器內元素的遍歷操作。
5. 類 java.util.Collections 提供了對Set、List、Map操作的工具方法。
6. 如下情況,可能需要我們重寫equals/hashCode方法:
1) 要將我們自定義的對象放入HashSet中處理。
2) 要將我們自定義的對象作為HashMap的key處理。
3) 放入Collection容器中的自定義對象后,可能會調用remove、contains等方法時。
7. JDK1.5以後增加了泛型。泛型的好處:
1) 向集合添加數據時保證數據安全。
2) 遍歷集合元素時不需要強制轉換。