JAVA編程思想(第四版)學習筆記----11.4 容器的列印,編程思想----11.4
1 import static java.lang.System.out; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.HashMap; 6 import java.util.HashSet; 7 import java.util.LinkedHashMap; 8 import java.util.LinkedHashSet; 9 import java.util.LinkedList;10 import java.util.Map;11 import java.util.TreeMap;12 import java.util.TreeSet;13 14 public class ContainerFramework {15 16 static Collection fill(Collection<String> collection) {17 collection.add("rat");18 collection.add("cat");19 collection.add("dog");20 collection.add("dog");21 return collection;22 }23 24 static Map fill(Map<String, String> map) {25 map.put("rat", "Fuzzy");26 map.put("cat", "Rags");27 map.put("dog", "Bosco");28 map.put("dog", "Spot");29 return map;30 }31 public static void main(String[] args) {32 out.println(fill(new ArrayList<String>()));33 out.println(fill(new LinkedList<String>()));34 out.println(fill(new HashSet<String>()));35 out.println(fill(new TreeSet<String>()));36 out.println(fill(new LinkedHashSet<String>()));37 out.println(fill(new HashMap<String, String>()));38 out.println(fill(new TreeMap<String, String>()));39 out.println(fill(new LinkedHashMap<String, String>()));40 }41 }
上述代碼的運行結果為:
[rat, cat, dog, dog][rat, cat, dog, dog][cat, dog, rat][cat, dog, rat][rat, cat, dog]{cat=Rags, dog=Spot, rat=Fuzzy}{cat=Rags, dog=Spot, rat=Fuzzy}{rat=Fuzzy, cat=Rags, dog=Spot}
經過運行代碼,查看結果可以看出,Collection列印出來的內容用方括弧[]括住,每個元素由逗號分隔;Map列印出來的內容用大括弧{}括住,鍵與值用等號串連作為一個元素(鍵=值),每個元素用逗號分隔。
java容器類包括兩種:以Collection介面為根的集合類,和以Map為根的關聯陣列類
- Collection介面有三個重要的子類型:List(列表),Set(集合),Queue(隊列)
-
- List介面的所有實作類別都保證其元素可以按照插入順序被儲存,所以List是有序的collection。其中ArrayList優點在於可以高效的隨機訪問其元素,缺點在於在指定位置插入、移除元素的效能比較慢。而LinkedList在隨機訪問方面比較慢,但是在指定位置插入、移除元素的效率比較高。
2. Set有三個重要的實現,分別為HashSet,TreeSet,LinkedHashSet
-
- Set介面的所有實作類別都保證其元素不會重複。HashSet使用雜湊演算法來存數集合中的元素,它的元素是無序的,但是擷取元素的效率是最快的。TreeSet是有序的集合,它將集合中的元素按照比較結果的升序進行儲存。LinkedHashSet也是有序的集合,它按照元素插入的順序進行儲存對象,同時又具有HashSet的查詢速度。
3. Queue
-
- Queue允許在容器的一端進行資料的插入,在另一端進行資料的移除。
- Map介面有三個重要的子類型:HashMap,TreeMap,LinkedHashMap,可以通過鍵來尋找值,是一種“鍵-值"對的容器