標籤:ons 更改 font 位置 hash 封裝 cal 應該 java集合
第十六天知識點總結
一、泛型
泛型:java jdk 1.5 新特性。
泛型的好處:
1.運行時的錯誤提前到編譯時間。
2.避免無謂的強制類型轉換
自訂方法泛型:自訂泛型就是一個資料類型的佔位或一個資料類型變數,一般用T或E來做這個預留位置號,預留位置號可以隨意寫,但是必須遵守標識符的命名規範
方法泛型的格式:
<預留位置> T : 定義了一個泛型
舉例:
Public static <T>T test(T s){
Return s;
}
如果你傳進去的是一個基礎資料型別 (Elementary Data Type):接收的時候應該用它的封裝類來接收.
int Integer short Short double Double float Float byte Byte
boolean Boolean long Long char charactor
自訂數組的工具類
定義一個泛型類:
定義格式
class 類名<聲明自訂的泛型> { }
泛型類的使用注意點:
1.泛型類上定義的自訂泛型的類型是在建立這個類對象時確定的。
2.如果一個自訂泛型的類,在建立對象時沒有指定,預設為Object類型。
3.靜態方法不能夠使用類刪自訂的泛型,必須在方法上定義一個泛型。
泛型介面:
泛型介面的定義方式:
Interface 介面名<聲明自訂的泛型> { }
介面泛型的使用注意點:
1.介面上自訂的泛型在實現介面的時候被指定的
2.如果實現介面是沒有指定介面 ,那麼就會預設為Object
3.需要在建立介面實作類別對象是指定資料類型,
那麼需要格式:class 類名<聲明自訂泛型> implements 介面<聲明自訂泛型>
判斷下列寫法是否錯誤:
ArrayList<String> list1 = new ArrayList<String>(); //true
ArrayList<String> list2 = new ArrayList<Integer>();//false
ArrayList<Integer> list3 = new ArrayList<String>();//false
1. ArrayList list4 = new ArrayList<String>();//true
2. ArrayList<String> list5 = new ArrayList();//true
推薦使用第一種
二、Map集合
Map集合 介面 雙列集合 key:value 類似於OC中的字典
特點:儲存資料是以鍵和值的方式,鍵不允許重複,值可以重複
-----> HashMap 基於雜湊表來儲存資料的
儲存原理也使用雜湊表來存放:
往HashMap添加了元素,首先會調用鍵的hashCode方法獲得一個雜湊值,然後經過運算擷取一個位置。
情況一:如果位置上沒有元素,那麼直接將該元素存放在此位置。
情況二:如果位置上有元素,那麼還會調用元素的equals方法與位置上的元素做比較,如果返回的是true,那麼就被視為相同的鍵,就不存了,反之返回的是false,那麼就可以存放該元素。
-----> TreeMap:基於二叉樹的結構儲存,特點:以鍵來做自然排序
使用注意點:
1.往TreeMap裡添加元素時,如果元素的鍵具備自然排序功能,那麼就會通過自然排序進行排序。
2.往TreeMap裡添加元素時,如果元素的鍵不具備自然排序功能,鍵所屬的類必須要實現Comparable介面,把這個鍵的比較規則定義在compareTo方法中。
3.往TreeMap裡添加元素時,如果元素的鍵不具備自然排序功能,也沒有實現Comparable介面,建立TreeMap的時候給他一個比較子
結構:
Class 類名implements Compartor 介面{
}
鍵的比較規則定義在compare方法中。
-----> HashTable :HashMap 一樣的使用,安全執行緒。訪問比較慢(瞭解)
Map集合的使用注意點:
1.鍵可以是任意對象,值也可以是任意對象
2.Map集合中是可以嵌套list集合
(重點掌握)Map集合常用的方法:
添加:put(K key, V value);
putAll(Map <?extends K,?extends V> m);
刪除:clear();
remove(Object key);
擷取:get(Object key);
Size();
判斷:isEmpty();
containsKey(Object key);
containsValue(Object value);
Map集合的遍曆方式:
通過迭代器來遍曆:
entrySet();
keySet();
values();
Map.Entry: 介面:提供給使用者來操作map集合
getKey(); 擷取鍵
getValue();擷取值
setValue();更改值
java集合類(二)