Java集合概述 Set List基本介紹

2021-08-30 04:17:57 字數 1159 閱讀 4545

集合由兩個類派生而出

collection: ( set 、list 、queue) 

map: (hashmap hashtable treemap)

無序,不可重複、非執行緒同步,元素值可以為null

1.hashset是根據hashcode決定儲存位置

2.僅當hashcode和equals同時為true時,判斷元素重複

3.equals比較為true,hashcode比較為false,仍可以新增成功,但與set規則衝突了

4.equals為false,hashcode為true,可以成功,這種更嚴重(hashset是根據hashcode快速找到位址定位的,如果存在兩個以上相同的hashcode,效能會下降)

要麼都為true,要麼都為false

hashset儲存完元素後,不要輕易改動會影響hashcode和equals方法結果的例項變數,否則可能會導致無法找到之前儲存的物件

compareto(object obj)方法規則

當a.compareto(b) ,當a < b 返回 -1 ,當a == b 返回 0 ,當a > b返回1

treeset新增元素時必須實現compareble介面,自然排序時按照compareto的結果公升序排序

有序,不可重複,非執行緒同步,元素值不可以為null

僅compareto()返回0時,treeset判斷該元素重複

當equals()返回true時,compareto()返回0

(1)新增的元素必須實現comparable介面

(2)因為會呼叫compareto介面比較元素,所以最好是只新增同一種型別的物件,以免發生classcastexception

(3) 與hashset一樣新增完以後就不要修改影響compareto判斷元素大小的物件屬性,否則會造成無法刪除,找不到修改前的元素等問題(按紅黑樹儲存,修改後破壞了結構)

list分為arraylist和linkedlist,前者採用線性表的資料結構,後者採用鍊錶的資料結構

arraylist使用get()隨機訪問效率較高,linkedlist使用迭代器訪問效率較高

1.arraylist適用於遍歷、查詢比較多的時候效率較高,缺點是增刪效率較慢

2.linkedlist適用於大量增刪操作,查詢效率較低

java集合概述()

主要分為兩大類 collection和map collection介面實現了iterable介面 超級介面 iterable主要提供以下的方法 iterator iterator 返回乙個在一組 t 型別的元素上進行迭代的迭代器。collection介面主要提供以下方法 booleanadd e e...

Java集合概述

前幾日把集合陸續又回顧了一番,現在便嘗試總結一下,這種總結是對腦海中所有的關於集合的記憶及理解的組織 提取 凝練等 效果不用說自然是最好的 下面言歸正傳。所謂集合,就像陣列一樣,是一類可以儲存資料的容器,不同於陣列的是,它可以儲存的資料型別必須是引用資料型別,若是將基本資料型別新增進去,亦不會報錯,...

Java集合框架概述

collection介面 第一組方法 boolean add object o 新增乙個元素 boolean remove object o 刪除乙個元素 iterator iterator 獲得此集合的迭代器,用來遍歷此集合的所有元素 boolean contains object o 判斷乙個元...