1.Collection List 有序,可重覆,可以操作下標 | ArrayList: | LinkedList:Node(數據,地址) | Vector Set 無序,不可重覆,不可以操作下標 | HashSet:哈希表(根據哈希值確定對象的存儲位置) | add() int hashCode( ...
1.Collection
List 有序,可重覆,可以操作下標
|------ArrayList:
|------LinkedList:Node(數據,地址)
|------Vector
Set 無序,不可重覆,不可以操作下標
|------HashSet:哈希表(根據哈希值確定對象的存儲位置)
|------add() int hashCode() 和集合中已有的所有對象哈希值都不相同,直接加入集合,否則再調用equals()方法
|------TreeSet:二叉樹,可排序,預設調用對象的 compareTo()方法 ,依據compareTo(Object obj)方法的返回值來確定誰大誰小,
需要對象所屬的類實現
2.Comparable介面
當對象已有的比較大小的方式不滿足需求,那麼可以自定義排序方式,
Comparator compare(Object obj1,Object obj2)
3.泛型
1 //在創建對象時,才能確定泛型類型 2 泛型類:class Demo<T>{ 3 4 } 5 //當類上的泛型確定了方法的參數的類型才能確定 6 泛型方法:class Test<T>{ 7 8 public void s1(T t){} 9 //一個方法希望參數的類型是任意類型,相當於參數類型是 Object 10 //在方法前邊加上<E> 表示方法自己使用泛型 11 public <T> ss(T t){} 12 13 14 //靜態方法進記憶體的時候沒有對象 Test.ff() 15 //靜態方法只能自己使用泛型 16 public static <T> show(T tt){} 17 } 18 19 20 21 //泛型介面:一個介面能用泛型,說明在定義介面時定義了泛型 22 泛型介面: 23 interface inter<T>{ 24 //當介面上的泛型類型確定了,該方法的參數類型才能確定 25 public abstract void fun(Integer i); 26 } 27 28 class Tests implements inter<String>{ 29 30 } 31 32 33 34 //當類上的泛型確定了,介面的泛型才能確定 35 class Tests<T> implements inter<T>{ 36 37 } 38 39 Tests<String> t = new Tests<>();
4.通配符: ?
泛型限定:? extends E: 限定了上限,可以接收E類型或E類型的子類類型
? super E: 限定了下限,可以接收E類型或E類型的父類類型
5.Map<K,V>:集合,是一個獨立的介面,不屬於Collection的子介面,存儲的是鍵值對,一對兒一對兒的存,
可以存儲null鍵,null值的鍵不能重覆(鍵要唯一)
|------HashMap
|------TreeMap
1 添加: 2 V put(K key, V value) 3 void putAll(Map<? extends K,? extends V> m) 4 5 刪除: 6 V remove(Object key) 7 void clear() 8 9 獲取: 10 V get(Object key) 11 12 Set<K> keySet() 13 Set<Map.Entry<K,V>> entrySet() 14 int size() 15 Collection<V> values() 16 判斷: 17 boolean isEmpty() 18 boolean containsKey(Object key) 19 boolean containsValue(Object value) 20 21 Set<K> keySet() : 取到所有的鍵,存儲到一個Set集合中,並返回該集合對象,因為Set有迭代器 22 所以得到Set集合的迭代器,每次迭代出來的是一個鍵,然後再根據鍵獲取值 23 24 25 Set<Map.Entry<K,V>> entrySet() :取到每個鍵值對應的Map.Entry(映射關係)類型的值,存儲到一個Set集合中,並返回這個集合 26 集合中每個映射關係類型的值既包括鍵也包括值,Entry是定義在Map內部的靜態成員,Entry是對存儲在 27 map內部的鍵值對的映射關係的描述,所以定義在Map內部 28 遍歷: 29 Set<Map.Entry<String,String>> en = map.entrySet(); 30 31 Iterator<Map.Entry<String,String>> ite = en.iterator(); 32 33 while(ite.hasNext()){ 34 35 Map.Entry<String,String> e = ite.next(); 36 String key = e.getKey(); 37 String value=e.getValue(); 38 sop(key+"="+value); 39 }