public class TestCollections {
public static void main(String args[]) {
//注意List是實現Collection接口的
List list = new ArrayList();
double array[] = { 112, 111, 23, 456, 231 };
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.sort(list);//排序
for (int i = 0; i < array.length; i++) {
System.out.print(list.get(i)+" ");
}
// 結果:23.0 111.0 112.0 231.0 456.0
System.out.println("\n--------------------------");
Collections.shuffle(list);//混排
for (int i = 0; i < array.length; i++) {
System.out.print(list.get(i)+" ");
}
System.out.println("\n--------------------------");
Collections.reverse(list);//反轉
for (int i = 0; i < array.length; i++) {
System.out.print(list.get(i)+" ");
}
}
}
Collection:
是集合類的上層接口。本身是一個Interface,裏面包含了一些集合的基本操作。Collection接口時Set接口和List接口的父接口。Collection接口的意義是爲各種具體的集合提供了最大化的統一操作方式。
Collections
是一個集合框架的幫助類,裏面包含一些對集合的排序,搜索以及序列化的操作。最根本的是Collections是一個類。它包含有各種有關集合操作的靜態多態方法。此類不能實例化,就像一個工具類,服務於Java的Collection框架
Collections.sort(list);//對list集合進行排序
二、collection集合
|--list 特點:有序,能重複
|--arraylist 查詢快,增刪慢 底層數據是數組數據結構
|--linklist 增刪快,查詢慢 底層數據是鏈表數據結構
|--set 特點:無序,不可重複
|--hashset 底層數據是哈希表 無序
|--treeset 底層數據是二叉樹 可以對set集合中的元素進行排序
其中對於arraylist和hashset來說,他們的查詢方式不同
arraylist是依據equals來查詢
hashset是先依據hashcode進行比較,若相同在進行equals比較來查詢
因此在使用時一般都要複寫hashcode()方法和equals()方法。
treeset 在使用時,添加數據會自動進行自然排序,若添加的都是new出來的對象,這個時候就無法排序而進行報錯,處理辦法就是讓對象類實現compare接口並複寫compareTo方法。
map集合
|--hashtable 不允許有null鍵null值得情況
|--hashmap 允許有null鍵null值得情況
|--treemap 可以對鍵進行排序
map集合特點:該集合存儲 鍵-值 對,且鍵唯一。
爲什麼遍歷Map集合可以用entrySet()而不是entryList()?因爲map中key值不可以重複出現