package cn.itcast.map;
/*單例集合 的體系:
---------| collection 單例集合的根介面
------------| list 如果是實現了list介面的集合類, 具備的特點:有序,重複。
---------------| arrarylist 底層 是使用了object陣列實現的,特點: 查詢速度快,增刪慢。
---------------| linkedlist 底層是使用了鍊錶資料結構實現 的, 特點: 查詢速度慢,增刪快。
---------------| vector
vector的實現與arraylist是一致,但是是執行緒安全 的,操作效率低。 jdk1.0的時候出現的
------------| set 如果是實現了set介面的集合類,具備的特點:無序,不可重複。
----------------| hashset 底層是使用了乙個雜湊表支援的, 特點:訪問速度快。
hashset新增元素的原理:
往hashset新增元素的時候,首先hashset會呼叫元素的hashcode方法得到元素的雜湊碼值,然後會經過一系列運算
就可以算出該元素在雜湊表中的儲存位置/
情況1:如果算出該元素的位置目前沒有任何元素儲存,那麼該元素可以直接儲存
情況2: 如果算出該元素的位置目前已經存有其他的元素,那麼還會呼叫元素的equals方法與該位置的元素再比較一次。
如果equals方法返回的是false,那麼該元素允許儲存,如果euqlas方法返回的是true,那麼該元素被視為重複元素,不允許儲存。
------------------| treeset 底層是使用了紅黑樹(二叉樹)資料結構實現的, 特點:會對元素進行排序儲存。
treeset要注意的事項:
1. 往treeset新增元素的時候,如果元素本身具備自然順序的特性,那麼會根據元素自然順序的特性進行排序儲存。
2. 往treeset新增元素的時候,如果元素本身不具備自然順序的特性,那麼元素所屬的類必須要實現comparable介面,把元素的比較規則定義
在compareto方法上。
3. 往treeset新增元素的時候,如果元素本身不具備自然順序的特性,而且元素所屬的類沒有實現comparable介面,那麼必須要在建立
treeset物件的時候傳入比較器。
4. 如果比較的方法(compareto 或者compare )返回的是0的時候,那麼該元素就被視為重複元素,不允許新增。
比較器的定義格式: 自定義乙個類實現comparator介面即可。
class 類名 implements comparator
泛型:泛型是jdk1.5出現的新特性。
泛型的好處:
1. 將執行時出現 的問題提前至了編譯時。
2. 避免了無謂強制型別轉換。
自定義泛型: 自定義泛型就是乙個資料型別的佔位符或者理解為乙個資料型別的變數。
泛型方法:
修飾符 《宣告自定義的泛型》返回值型別 函式名(自定義的泛型 變數名..)
泛型方法要注意的事項:
1. 泛型方法中 的自定義泛型的具體資料型別是在呼叫該函式的時候傳入實參時確定的。
2. 自定義泛型所用 的識別符號只要符合識別符號 的命名規則即可。但是我們一般都習慣使用乙個大寫字母表示。
泛型類:
泛型類的定義格式
class 類名《宣告自定義的泛型》
泛型類要注意的事項:
1. 泛型類上的自定義泛型是在使用該類建立物件的時候指定具體的資料型別的。
2. 如果乙個類已經自定義了泛型,使用該類建立物件的時候如果沒有指定泛型的具體資料型別,那麼預設為object型別。
3. 靜態的函式不能使用類上自定義的泛型,如果靜態函式需要使用,必須要在函式上自定義泛型。
泛型介面:
泛型介面的定義格式:
inte***ce 介面名《宣告自定義的泛型》
泛型介面要注意事項:
1. 泛型介面上的自定義泛型是在實現該介面的時候指定具體資料型別的。
2. 如果實現介面的時候沒有指定介面上 的自定義泛型的具體資料型別,那麼預設為object資料型別。
3. 如果需要在建立介面實現類物件的時候才指定介面上自定義泛型,那麼需要以下格式: class類名 implements 介面泛型上下限:
? super integer 允許是integer資料型別或者是integer父類型別 泛型的下限
? extedns number 允許是number資料型別或者是number子類的資料型別 泛型的上限。
*/public class demo1
JAVA單列集合
list e 介面 vector類 set e 介面 hashset e 類 例項treeset e 類 arraylist e 類 linkedlist 類 public class collection public static void demo9 public static void de...
Java單列集合總結
集合專題 單列集合collection 一 集合常見功能 01.新增元素 add e e arraylist list new arraylist list.add a list.add b list.add c list.add a system.out.println list 結果為 a,b,...
Java之單列集合
集合 集合類的特點 提供一種儲存空間可變的儲存模式,儲存的資料容量可以隨時發生改變 和陣列的區別 陣列是儲存同種資料型別 長度在定義後便不可變。集合分為單列集合 collection 和雙列集合 map collection集合的概述 是單列集合的頂層介面,它表示一組物件,這些物件也稱為collec...