java.util.Set
接口和java.util.List
接口一樣,同樣繼承Collection接口,它與Collection接口中的方法基本一致,并沒有對Collection接口進行功能上的擴充,只是比Collection接口更加嚴(yán)格,與List接口不同的是,Set接口中元素?zé)o序,并且都會以某種規(guī)則保證存入的元素不出現(xiàn)重復(fù)。創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)提供從項目策劃、軟件開發(fā),軟件安全維護、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評估等整套的建站服務(wù),主營業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站建設(shè),成都app軟件開發(fā)公司以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。創(chuàng)新互聯(lián)建站深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
Set集合有多個子類,比如:
java.util.HashSet
、java.util.LinkedHashSet
Set特性:
java.util.HashSet
是Set接口的一個實現(xiàn)類,它所存儲的元素是不可重復(fù)的,并且元素都是無序的(存取順序不一致),java.util.HashSet
底層的實現(xiàn)其實是一個java.util.HashMap
支持。
1、HashSet集合特點HashSet是根據(jù)對象的
哈希值
來確定元素在集合中的存儲位置,因此具有良好的存取和查找性能,保證元素唯一性的方式依賴于:hashCode
和equals
方法
HashSet集合存儲數(shù)據(jù)
package cn.com.example11;
import java.util.HashSet;
public class HashSetClass {public static void main(String[] args) {HashSethashSet = new HashSet<>();
hashSet.add("admin");
hashSet.add("user");
hashSet.add("guest");
hashSet.add("root");
System.out.println(hashSet);
}
}
3、哈希值
3.1、哈希值概述3.2、如何獲取哈希值哈希值:是JDK根據(jù)對象的地址或者字符串或者數(shù)字計算出來的int類型的數(shù)據(jù)
3.3、哈希值的特點Object 類中的public int hashCode():返回對象的哈希碼值
a、JDK1.8以前
底層數(shù)據(jù)結(jié)構(gòu):數(shù)組 + 鏈表
新元素在老元素上面
b、JDK1.8以后
節(jié)點個數(shù)小于等于8個:
數(shù)組 + 鏈表
節(jié)點個數(shù)大于8個:
數(shù)組 + 紅黑樹
5、HashSet遍歷方式和Collection一致
三、TreeSet 1、TreeSet特點和Collection一致
package cn.com.example11;
import java.util.TreeSet;
public class TreeSetClass {public static void main(String[] args) {TreeSettreeSet = new TreeSet<>();
treeSet.add("admin");
treeSet.add("user");
treeSet.add("guest");
treeSet.add("root");
for (String s : treeSet) {System.out.println(s);
}
}
}
四、LinkedHashSet我們知道HashSet保證元素唯一,可是元素存放進去是沒有順序的,那么我們要保證有序,可以使用HashSet的一個子類
java.util.LinkedHashSet
,它是鏈表和哈希表組合的一個數(shù)據(jù)存儲結(jié)構(gòu)。
LinkedHashSet:元素唯一、有序
LinkedHashSet特點:底層是一個哈希表(數(shù)組+鏈表/紅黑樹) + 鏈表:多出的鏈表用于記錄元素的存儲順序,保證元素有序
package cn.com.example11;
import java.util.LinkedHashSet;
public class LinkedHashSetClass {public static void main(String[] args) {LinkedHashSetlinkedHashSet = new LinkedHashSet<>();
linkedHashSet.add("admin");
linkedHashSet.add("user");
linkedHashSet.add("guest");
linkedHashSet.add("root");
linkedHashSet.add("admin");
System.out.println(linkedHashSet);
}
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前文章:Java集合-Set-創(chuàng)新互聯(lián)
本文路徑:http://www.chinadenli.net/article40/gsgho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、搜索引擎優(yōu)化、移動網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、定制網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容