Java中的集合(2)

2021-08-28 18:31:01 字數 1849 閱讀 3027

二 set (set:注重獨一無二的性質,該體系集合可以知道某物是否已近存在於集合中,不會儲存重複的元素)

set集合的子集合 hashset 按照雜湊演算法來訪問集合中的物件 訪問速度比較快

當程式向hashset中 add()的乙個物件的時候, 先用hashcode方法計算出該物件的雜湊碼 雜湊碼不一致 新增 雜湊碼一致

不新增 相同物件不新增 然後用equals判斷物件的屬性是否一致 比較結果為false就新增 true就不新增 不同物件新增

hashset

在用set集合的時候我幾乎用的都是hashset,hashset是使用hash表實現的,集合裡面的元素是無序得,可以有null值,但是不能有重複元素。

特點:因為相同的元素具有相同的hashcode,所以不能有重複元素

基本資料型別包裝類/string 已經重寫了hashcode 和 equals 會自動比較

自定義實現類要重寫其hashcode和equals方法,規定自定義類的比較規則來排重.

linkedhashset 特點:

1.有序(訪問一致)

是set集合中唯一乙個能保證怎麼存就怎麼取的集合物件

2.排重

3.底層是雙向鍊錶 hashset的方法怎麼用 linkedhashset就怎麼用 treeset 二叉樹 實現了sortedset介面 能夠對集合中物件進行排序

特點:1.排序的(公升序) 自然排序 根據ascii表大小排序

2.排重

3.無序(訪問不一致)

4.底層是乙個二叉樹(左序中序右序)

5.只能儲存同一種型別 才能排序 不然就會出現轉換異常 自定義實現類 如何比較

treeset

treeset是用二叉樹結構實現的集合

特點:集合中的元素是有順序得,不允許放入null,同樣不能放入重複元素。

三、map

map介面中鍵和值一一對映. 可以通過鍵來獲取值。

給定乙個鍵和乙個值,你可以將該值儲存在乙個map物件. 之後,你可以通過鍵來訪問對應的值。

當訪問的值不存在的時候,方法就會丟擲乙個nosuchelementexception異常.

當物件的型別和map裡元素型別不相容的時候,就會丟擲乙個 classcastexception異常。

當在不允許使用null物件的map中使用null物件,會丟擲乙個nullpointerexception 異常。

當嘗試修改乙個唯讀的map時,會丟擲乙個unsupportedoperationexception異常。

hashmap特點:

treemap特點:

treemap 特殊方法:

treemap是基於紅黑樹實現的;

hashmap 是基於是雜湊值實現的;

java中的集合

set hashset無序不重複,底層資料結構是雜湊表,執行緒非同步,保證元素唯一性原理是判斷hashcode值是否相同 位址相同 如果相同還會繼續判斷equals方法是否為true 是否是同乙個物件 treeset字典序不重複,底層資料是二叉樹,保證元素唯一性原理是compareto方法retur...

Java中的集合

有序的 允許重複的 arraylist實現類 基於陣列實現 remove語句,刪除成功則返回true,不成功則返回false 注 不要在迭代時進行刪除,否則會出錯,可以使用迭代器自身的remove方法,如上。linklist實現類 基於鍊錶實現 與arraylist區別 越靠近頭部的新增刪除,arr...

java中的集合

1.1 collection介面 新增 add e e addall collectionc 刪除 clear 清空集合 remove object o 刪除乙個元素 removeall collection c 刪除兩個集合的交集部分 retainall collection c 刪除兩個集合沒有...