學習筆記 - set、hashset、treeset
一、set簡介
* -set :元素是無序(存入和取出的順序不一定一致),元素不可以重複
* |--hashset:底層資料結構是雜湊表
* hashset是如何保證元素唯一性的呢?
* 如果元素的hashcode值相同,才會判斷equals是否為true
* 如果元素的hashcode值不同,不會呼叫equals
*
* 注意:對於判斷預算是否存在,以及刪除等操作,依賴的方法是元素的hashcode和equals方法
* 先依賴hashcode在依賴equals方法
*
* |--treeset
* * set集合的功能和collection是一致的
二、hashset使用示例
public class hashsettext )
public static void main(string args)
}public static void sop(object obj) }
class person2
//注意hascode 和 hashcode
public int hashcode()
public boolean equals(object obj)
public int getage()
public string getname() }
三、treeset簡介
* set無序,不可以重複元素。
* |--hashset:資料結構是雜湊表,執行緒是非同步的。
* 保證元素唯一性的原理:判斷元素的hashcode值是否相同。
* 如果相同,還會繼續判斷元素的equals方法,是否為true
* * |--treeset:可以對set集合中的集合進行排序。
* 底層資料結構是二叉樹
* 保證元素唯一性的依據
* compareto方法 return 0
* * treeset排序的第一種方式:讓元素自身具備比較性.
* 元素需要實現 comparable介面,覆蓋comparableto方法。
* 這種方式也稱為元素的自然順序,或者預設順序。
* * treeset的第二種排序方式
* 當元素自身不具備比較性時,或者具備的比較性不是所需要的
* 這時就需要讓集合自身具備比較性
* 在集合初始化時,就有了比較方式。
*
* 需求:
* 往treeset集合中儲存自定義物件學生。
* 想按照學生的年齡進行排序。
* * 排序時,當主要條件相同時,一定判斷一下次要條件。
四、treeset使用示例
public class treesetdemo2 )
public static void main(string args) }
}@suppresswarnings("rawtypes")
class student2 implements comparable //該介面強制讓學生具備比較性
public string getname()
public int getage()
@override
public int compareto(object obj)
return -1;}}
/*** 1.讓元素自身具有比較性
* 2.讓容器自身具備比較性
* * 以比較器為主**/
class mycompare implements comparator
return num;}}
Java 類集框架
主要方法 add 增加資料 clear 清空資料 contains 是否包含某個資料 isempty 是否為空 remove 移除某個資料 size 獲取集合中的資料個數 toarray 轉換為物件陣列 iterator 例項化父介面iterator 物件陣列使用remove 和contains 時...
Java基礎 集合框架《二》
map與collection在集合框架是並列存在的。map儲存的是鍵對值。一對一對往裡存,而且要保證鍵的唯一性。map儲存元素使用的是put方法,collection使用的是add方法。map集合沒有直接取出元素的方法,而是先轉換成set集合,再通過迭代器獲取元素。map hashtable 底層是...
Java類集框架 HashMap原始碼分析
hashmap是基於map的鍵值對對映表,底層是通過陣列 鍊錶 紅黑樹 jdk1.8加入 來實現的。hashmap結構 hashmap中儲存元素,是將key和value封裝成了乙個node,先以乙個node陣列的來儲存,通過key的hashcode來計算hash值,根據hash值和hashmap的大...