java Collection 之Set使用說明
Set
一個不包含重復元素的collection,確切的講,set不包含滿足e1.equals(e2)的元素對e1,e2,并且最多包含一個null元素;
此實現(xiàn)不是同步的,如果多個線程同時訪問一個set,而其中至少一個線程修改了該set,那么它必須保持外部同步,通常是通過對自然封裝該set的對象執(zhí)行同步操作來完成,如果不存在這樣的對象,則:Collections.synchronizedSet();
HashSet
集合中元素無順序,不重復;數(shù)據(jù)結構是哈希表;
保證元素唯一性的原理:判斷元素的HashCode值是否相同,若相同,還會繼續(xù)判斷元素的equals方法,是否為true; 當一個對象被存儲進HashSet集合中后,就不能修改這個對象的那些參與計算哈希值的字段了,如果修改后就會造成內(nèi)在泄漏;
TreeSet
可以對Set集合中的元素進行排序:
(1)讓元素自身具備比較性,元素需要實現(xiàn)Comparable接口,覆蓋compareTo方法,這種方式也成為元素的自然順序;
(2)元素自身不具備比較性,或者具備的比較性不是所需要的,這時就需要讓集合自身具備比較性。在集合初始化時就有了比較方式[定義比較器(Comparator<>接口),將它作為參數(shù)傳給集合的構造函數(shù)]
以下兩種方式為TreeSet需要實現(xiàn)的兩種接口
class Obj implements Comparable<Obj> {
public int compareTo(Obj o) {
return this.name.compareTo(o.name);
} }
class Comptor implements Comparator<ComptorObj> {
@Override
public int compare(ComptorObj o1, ComptorObj o2) {
return o1.name.compareTo(o2.name);
} }
相關文章
利用IDEA社區(qū)版創(chuàng)建SpringBoot項目的詳細圖文教程
大家應該都知道Idea社區(qū)版本,默認是不能創(chuàng)建SpringBoot項目的,下面這篇文章主要給大家介紹了關于利用IDEA社區(qū)版創(chuàng)建SpringBoot項目的詳細圖文教程,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-04-04五種SpringBoot實現(xiàn)數(shù)據(jù)加密存儲的方式總結
這篇文章主要為大家詳細介紹了五種常見數(shù)據(jù)加密存儲的方法(結合SpringBoot和MyBatisPlus框架進行實現(xiàn)),文中的示例代碼講解詳細,需要的可以參考下2023-11-11