- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- Java基礎之集合Set詳解
Set是Java中的集合類(lèi),提供了一種無(wú)順序,不重復的集合。常用的子類(lèi)包括HashSet, TreeSet等。
package collect; import java.util.HashSet; import java.util.Set; /** * [簡(jiǎn)要描述]:Set使用 * [詳細描述]: * * @author Smalight Lv * @version 1.0, 2021/5/6 15:15 * @since JDK 1.8 */ public class SetTest1 { public static void main(String[] args) { Set<String> set = new HashSet<>(); //添加元素到Set set.add("張三"); set.add("李四"); set.add("王五"); //打印Set System.out.println(set); //再加入一個(gè)王五,不能添加成功 boolean rst = set.add("王五"); System.out.println("添加結果:" + rst); System.out.println(set); //HashSet可以加入null,但只能加入一個(gè)null rst = set.add(null); System.out.println("添加第一個(gè)null:" + rst); System.out.println(set); rst = set.add(null); System.out.println("添加第二個(gè)null:" + rst); System.out.println(set); //判斷Set中是否包含某個(gè)元素 rst = set.contains("張三"); System.out.println("是否包含元素\"張三\":" + rst); //刪除元素 set.remove("張三"); System.out.println(set); //判斷Set中是否包含某個(gè)元素 rst = set.contains("張三"); System.out.println("是否包含元素\"張三\":" + rst); //Set的大小,即Set中元素的數量 int size = set.size(); System.out.println("Set的大?。? + size); //判斷Set是否為空 boolean isEmpty = set.isEmpty(); System.out.println("Set是否為空:" + isEmpty); //清空Set set.clear(); System.out.println(set); //判斷Set是否為空 isEmpty = set.isEmpty(); System.out.println("Set是否為空:" + isEmpty); } }
運行結果:
[李四, 張三, 王五]
添加結果:false
[李四, 張三, 王五]
添加第一個(gè)null:true
[null, 李四, 張三, 王五]
添加第二個(gè)null:false
[null, 李四, 張三, 王五]
是否包含元素"張三":true
[null, 李四, 王五]
是否包含元素"張三":false
Set的大?。?
Set是否為空:false
[]
Set是否為空:true
注:TreeSet不能添加null元素,添加null時(shí)會(huì )拋出NullPointerException異常
package collect; import java.util.Set; import java.util.TreeSet; /** * [簡(jiǎn)要描述]: Set * [詳細描述]: * * @author Smalight Lv * @version 1.0, 2021/5/6 16:28 * @since JDK 1.8 */ public class SetTest2 { public static void main(String[] args) { Set<String> set = new TreeSet<>(); //TreeSet不能加入null boolean rst = set.add(null); System.out.println("添加第一個(gè)null:" + rst); System.out.println(set); } }
運行結果:
Exception in thread "main" java.lang.NullPointerException
at java.util.TreeMap.compare(TreeMap.java:1294)
at java.util.TreeMap.put(TreeMap.java:538)
at java.util.TreeSet.add(TreeSet.java:255)
at collect.SetTest2.main(SetTest2.java:19)
package collect; import java.util.TreeSet; /** * [簡(jiǎn)要描述]: Set * [詳細描述]: * * @author Smalight Lv * @version 1.0, 2021/5/6 16:28 * @since JDK 1.8 */ public class SetTest3 { public static void main(String[] args) { TreeSet<String> set = new TreeSet<>(); //添加元素到Set set.add("B"); set.add("A"); set.add("李四"); set.add("王五"); set.add("張三"); set.add("a"); //打印Set System.out.println(set); //再加入一個(gè)王五,不能添加成功 boolean rst = set.add("王五"); System.out.println("添加結果:" + rst); System.out.println(set); //獲取Set中的第一個(gè)元素 System.out.println(set.first()); //獲取Set中的最后一個(gè)元素 System.out.println(set.last()); //判斷Set中是否包含某個(gè)元素 rst = set.contains("張三"); System.out.println("是否包含元素\"張三\":" + rst); //刪除元素 set.remove("張三"); System.out.println(set); //判斷Set中是否包含某個(gè)元素 rst = set.contains("張三"); System.out.println("是否包含元素\"張三\":" + rst); //Set的大小,即Set中元素的數量 int size = set.size(); System.out.println("Set的大?。? + size); //判斷Set是否為空 boolean isEmpty = set.isEmpty(); System.out.println("Set是否為空:" + isEmpty); //清空Set set.clear(); System.out.println(set); //判斷Set是否為空 isEmpty = set.isEmpty(); System.out.println("Set是否為空:" + isEmpty); } }
運行結果:
[A, B, a, 張三, 李四, 王五]
添加結果:false
[A, B, a, 張三, 李四, 王五]
A
王五
是否包含元素"張三":true
[A, B, a, 李四, 王五]
是否包含元素"張三":false
Set的大?。?
Set是否為空:false
[]
Set是否為空:true
package collect; import java.util.HashSet; import java.util.Set; /** * [簡(jiǎn)要描述]:增強for循環(huán)遍歷Set * [詳細描述]: * * @author Smalight Lv * @version 1.0, 2021/5/6 17:01 * @since JDK 1.8 */ public class SetTest4 { public static void main(String[] args) { Set<String> set = new HashSet<>(); set.add("唐僧"); set.add("孫悟空"); set.add("豬悟能"); set.add("沙悟凈"); System.out.println(set); for(String item:set){ System.out.println(item); } } }
運行結果:
[豬悟能, 孫悟空, 沙悟凈, 唐僧]
豬悟能
孫悟空
沙悟凈
唐僧
package collect; import java.util.HashSet; import java.util.Iterator; import java.util.Set; /** * [簡(jiǎn)要描述]:增強for循環(huán)遍歷Set * [詳細描述]: * * @author Smalight Lv * @version 1.0, 2021/5/6 17:01 * @since JDK 1.8 */ public class SetTest5 { public static void main(String[] args) { Set<String> set = new HashSet<>(); set.add("唐僧"); set.add("孫悟空"); set.add("豬悟能"); set.add("沙悟凈"); System.out.println(set); Iterator<String> iterator = set.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } } }
運行結果:
[豬悟能, 孫悟空, 沙悟凈, 唐僧]
豬悟能
孫悟空
沙悟凈
唐僧
到此這篇關(guān)于Java基礎之集合Set詳解的文章就介紹到這了,更多相關(guān)Java集合Set內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站