Java基礎鞏固第三天(泛型、ArrayList、LinkList、HashSet)

qq_44335237發表於2020-09-24

泛型的萬用字元:?
表示任意的資料型別;使用方式:不能在建立物件時使用;在方法中的引數裡使用。
泛型的上限限定:? extend E:只能是E型別的子類與本身使用。
泛型的下限限定:?super E:只能是E型別的父類與本身使用。

arraylist不是同步的。是多執行緒。
contains​(Object o) 如果此列表包含指定的元素,則返回 true 。
get​(int index) 返回此列表中指定位置的元素。
indexOf​(Object o) 返回此列表中指定元素的第一次出現的索引,如果此列表不包含元素,則返回-1。
isEmpty​() 如果此列表不包含元素,則返回 true 。

linklist的增加元素的方法有:addfist(element)把元素新增到集合中的第一個元素。等同於push。addlast(element)把元素新增到集合中的最後一個元素。等同於add();
remove​() 檢索並刪除此列表的頭(第一個元素)。
remove​(int index) 刪除該列表中指定位置的元素。
remove​(Object o) 從列表中刪除指定元素的第一個出現(如果存在)。
removeFirst​() 從此列表中刪除並返回第一個元素。
removeLast​() 從此列表中刪除並返回最後一個元素。
removeLastOccurrence​(Object o) 刪除此列表中指定元素的最後一次出現(從頭到尾遍歷列表時)。
set​(int index, E element) 用指定的元素替換此列表中指定位置的元素。
size​() 返回此列表中的元素數。
toArray​() 以正確的順序(從第一個到最後一個元素)返回一個包含此列表中所有元素的陣列
offerFirst​(E e) 在此列表的前面插入指定的元素。
offerLast​(E e) 在該列表的末尾插入指定的元素。

HashSet:繼承set介面
特性:無重複元素、無序(存取順序不一致)。只能用迭代器與增強for迴圈迭代查詢元素(因為沒有索引,也沒有帶索引的方法)。底層結構是一個雜湊(HashSet是雜湊表的例項)。

雜湊值:是系統隨機分配的十進位制值(物件的地址值,一個邏輯地址,並非實體地址。是模擬出的資料)。String型別的數值如果一樣,則hashCode一樣。物件才有hashCode,因為Object類裡的方法hashCode();

HashSet:陣列+連結串列+紅黑樹(為了提高查詢的速度)。
當新增元素時,計算雜湊值,查詢集合內是否有相同的雜湊值。如果沒有,插入雜湊值(陣列儲存)和字面值(連結串列儲存);如果有,看字面值是否相等,相等則覆蓋,不相等就插入此雜湊值所屬的結果集。

相關文章