集合由兩個類派生而出
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 判斷乙個元...