Java集合架構的基本介面/類階層:
java.util.Collection [I]
+--java.util.List [I]
+--java.util.ArrayList [C]
+--java.util.LinkedList [C]
+--java.util.Vector [C]
+--java.util.Stack
+--java.util.Set [I]
+--java.util.HashSet [C]
+--java.util.LinkedHashSet[C]
+--java.util.SortedSet [I]
+--java.util.TreeSet [C]
java.util.Map
+--java.util.SortedMap [I]
+--java.util.TreeMap [C]
+--java.util.Hashtable [C]
+--java.util.HashMap [C]
+--java.util.LinkedHashMap [C]
+--java.util.WeakHashMap [C]
[I]:介面
[C]:類
注意點:
1. Vector與ArrayList基本上是相同的,不同之處是該類的功能方法是同步的,同一時刻只能有一個線程訪問,沒有特殊需要,現在一般都使用ArrayList
2.ArrayList內部實際上時依賴數組實現的,因此對元素進行隨機訪問的效能很好。但是如果進行大量的插入,刪除操作,此類的效能很差,並不適合。
3.LinkedList的內部是依賴雙鏈表來實現的,因此具有很好的插入刪除效能,但隨機訪問元素的效能相對較差,適合用在插入,刪除多,元素隨即訪問少的場合。
4.set和map都不能直接都不能使用索引來進行元素的遍曆,而是必須使用迭代器來完成遍曆。
對集合操作的工具類:
Java提供了java.util.Collections,以及java.util.Arrays類簡化對集合的操作
java.util.Collections主要提供一些static方法用來操作或建立Collection,Map等集合。
java.util.Arrays主要提供static方法對數組進行操作。
附:對map的遍曆方法
//建立HashMap對象 Map<Integer, String> hm=new HashMap<Integer, String>(); //向Map中插入鍵/值對 hm.put(10001,"Tom"); hm.put(10003,"Jerry"); hm.put(10002,"John"); hm.put(10004,"Lili"); Set entrySet=hm.entrySet(); Iterator itr=entrySet.iterator(); while(itr.hasNext()) { Map.Entry map=(Map.Entry)itr.next(); System.out.println("鍵:"+map.getKey()+" 值:"+map.getValue()); } //擷取Map的鍵集合 Set keySet=hm.keySet(); //擷取鍵集合的迭代器 Iterator ii=keySet.iterator(); //通過迭代器遍曆假扮集合來遍曆HashMap System.out.println("==========通過鍵集合對Map進行遍曆=========="); while(ii.hasNext()) { Object okey=ii.next(); //將擷取的鍵引用進行強制類型轉換 Integer i=(Integer)okey; //通過鍵擷取相應的值 Object ovalue=hm.get(okey); //將擷取的值引用進行強制類型轉換 String s=(String)ovalue; //列印鍵、值的情況 System.out.println("鍵:"+i.intValue()+",值:"+s); } //擷取Map中所有值的Collection Collection cvalue=hm.values(); //用for-each迴圈對所有值進行遍曆 System.out.println("=======用for-each迴圈對所有值進行遍曆======="); for(Object otemp:cvalue) { //對引用進行強制類型轉換 String s=(String)otemp; System.out.println("值:"+s); }