av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java基礎(chǔ)之集合Set詳解

瀏覽:45日期:2022-08-13 09:14:27
目錄一、概述二、Set的常用方法三、Set的遍歷3.1增強(qiáng)for循環(huán)3.2 迭代器遍歷一、概述

Set是Java中的集合類,提供了一種無(wú)順序,不重復(fù)的集合。常用的子類包括HashSet, TreeSet等。

HashSet底層使用HashMap實(shí)現(xiàn),根據(jù)元素的hashCode和equals來(lái)判斷是否為重復(fù)元素。當(dāng)元素的hashCode相同且equals返回true時(shí)則認(rèn)為是重復(fù)元素。因?yàn)槭褂昧薶ash算法所以HashSet有很好的添加和訪問(wèn)性能??梢苑湃雗ull但只能放一個(gè)null TreeSet底層使用紅黑樹(shù)實(shí)現(xiàn),Set上的元素被放在一個(gè)自動(dòng)排序的紅黑樹(shù)中。不能放入null二、Set的常用方法 add() 向Set中添加元素 size() 返加Set的大小,即Set中元素的數(shù)量 remove(Object o) 從Set上刪除元素 boolean contains(Object o) 檢查Set中是否包含某個(gè)元素,包含返回true,不包含返回false iterator() 返回Set的迭代器 clear() 清空Setis Empty() 檢查Set是否為空,為空返回true, 否則返回false

package collect;import java.util.HashSet;import java.util.Set;/** * [簡(jiǎn)要描述]:Set使用 * [詳細(xì)描述]: * * @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<>();//添加元素到Setset.add('張三');set.add('李四');set.add('王五');//打印SetSystem.out.println(set);//再加入一個(gè)王五,不能添加成功boolean rst = set.add('王五');System.out.println('添加結(jié)果:' + rst);System.out.println(set);//HashSet可以加入null,但只能加入一個(gè)nullrst = 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中元素的數(shù)量int size = set.size();System.out.println('Set的大小:' + size);//判斷Set是否為空boolean isEmpty = set.isEmpty();System.out.println('Set是否為空:' + isEmpty);//清空Setset.clear();System.out.println(set);//判斷Set是否為空isEmpty = set.isEmpty();System.out.println('Set是否為空:' + isEmpty); }}

運(yùn)行結(jié)果:

[李四, 張三, 王五]添加結(jié)果:false[李四, 張三, 王五]添加第一個(gè)null:true[null, 李四, 張三, 王五]添加第二個(gè)null:false[null, 李四, 張三, 王五]是否包含元素'張三':true[null, 李四, 王五]是否包含元素'張三':falseSet的大?。?Set是否為空:false[]Set是否為空:true

注:TreeSet不能添加null元素,添加null時(shí)會(huì)拋出NullPointerException異常

package collect;import java.util.Set;import java.util.TreeSet;/** * [簡(jiǎn)要描述]: Set * [詳細(xì)描述]: * * @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不能加入nullboolean rst = set.add(null);System.out.println('添加第一個(gè)null:' + rst);System.out.println(set); }}

運(yùn)行結(jié)果:

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 * [詳細(xì)描述]: * * @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<>();//添加元素到Setset.add('B');set.add('A');set.add('李四');set.add('王五');set.add('張三');set.add('a');//打印SetSystem.out.println(set);//再加入一個(gè)王五,不能添加成功boolean rst = set.add('王五');System.out.println('添加結(jié)果:' + 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中元素的數(shù)量int size = set.size();System.out.println('Set的大?。? + size);//判斷Set是否為空boolean isEmpty = set.isEmpty();System.out.println('Set是否為空:' + isEmpty);//清空Setset.clear();System.out.println(set);//判斷Set是否為空isEmpty = set.isEmpty();System.out.println('Set是否為空:' + isEmpty); }}

運(yùn)行結(jié)果:

[A, B, a, 張三, 李四, 王五]添加結(jié)果:false[A, B, a, 張三, 李四, 王五]A王五是否包含元素'張三':true[A, B, a, 李四, 王五]是否包含元素'張三':falseSet的大?。?Set是否為空:false[]Set是否為空:true

三、Set的遍歷3.1增強(qiáng)for循環(huán)

package collect;import java.util.HashSet;import java.util.Set;/** * [簡(jiǎn)要描述]:增強(qiáng)for循環(huán)遍歷Set * [詳細(xì)描述]: * * @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);} }}

運(yùn)行結(jié)果:

[豬悟能, 孫悟空, 沙悟凈, 唐僧]豬悟能孫悟空沙悟凈唐僧

3.2 迭代器遍歷

package collect;import java.util.HashSet;import java.util.Iterator;import java.util.Set;/** * [簡(jiǎn)要描述]:增強(qiáng)for循環(huán)遍歷Set * [詳細(xì)描述]: * * @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());} }}

運(yùn)行結(jié)果:

[豬悟能, 孫悟空, 沙悟凈, 唐僧]豬悟能孫悟空沙悟凈唐僧

到此這篇關(guān)于Java基礎(chǔ)之集合Set詳解的文章就介紹到這了,更多相關(guān)Java集合Set內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 欧美不卡一区 | 国产日韩欧美日韩大片 | 免费黄色av | 北岛玲在线 | 在线观看免费av网站 | 天堂在线中文资源 | 国产成人在线免费观看 | 亚洲综合视频在线观看 | aa一级片 | 亚洲伦理精品 | 美女福利视频 | 自拍偷拍综合 | 黄色一级片黄色一级片 | 中文字幕2021 | 羞羞的网站 | 欧美日韩成人一区二区三区 | 日日夜夜天天操 | 久久精品视频免费 | 国产精品久久午夜夜伦鲁鲁 | 欧美三级韩国三级日本三斤在线观看 | 中文字幕国产 | 一级片观看 | 在线中文字幕网站 | 亚洲免费在线观看视频 | a级毛毛片 | 国产日韩欧美在线 | 欧美一级在线观看 | 夜夜躁狠狠躁日日躁av | 在线观看日韩视频 | 在线一区二区三区四区 | 国产成人免费 | 中文在线免费看视频 | 亚洲精品一二区 | 国产美女免费 | 中文字幕在线观看免费视频 | 老女人性生活视频 | 国产午夜三级 | 欧美日韩亚洲另类 | 毛片视频免费观看 | 国产91热爆ts人妖系列 | 亚洲福利视频一区 |