Set是Java中的集合类,提供了一种无顺序,不重复的集合。常用的子类包括HashSet, TreeSet等。
package collect;
import java.util.HashSet;
import java.util.Set;
/**
* [简要描述]: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);
//再加入一个王五,不能添加成功
boolean rst = set.add("王五");
System.out.println("添加结果:" + rst);
System.out.println(set);
//HashSet可以加入null,但只能加入一个null
rst = set.add(null);
System.out.println("添加第一个null:" + rst);
System.out.println(set);
rst = set.add(null);
System.out.println("添加第二个null:" + rst);
System.out.println(set);
//判断Set中是否包含某个元素
rst = set.contains("张三");
System.out.println("是否包含元素\"张三\":" + rst);
//删除元素
set.remove("张三");
System.out.println(set);
//判断Set中是否包含某个元素
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
[李四, 张三, 王五]
添加第一个null:true
[null, 李四, 张三, 王五]
添加第二个null:false
[null, 李四, 张三, 王五]
是否包含元素"张三":true
[null, 李四, 王五]
是否包含元素"张三":false
Set的大小:3
Set是否为空:false
[]
Set是否为空:true
注:TreeSet不能添加null元素,添加null时会抛出NullPointerException异常
package collect;
import java.util.Set;
import java.util.TreeSet;
/**
* [简要描述]: 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("添加第一个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;
/**
* [简要描述]: 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);
//再加入一个王五,不能添加成功
boolean rst = set.add("王五");
System.out.println("添加结果:" + rst);
System.out.println(set);
//获取Set中的第一个元素
System.out.println(set.first());
//获取Set中的最后一个元素
System.out.println(set.last());
//判断Set中是否包含某个元素
rst = set.contains("张三");
System.out.println("是否包含元素\"张三\":" + rst);
//删除元素
set.remove("张三");
System.out.println(set);
//判断Set中是否包含某个元素
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的大小:5
Set是否为空:false
[]
Set是否为空:true
package collect;
import java.util.HashSet;
import java.util.Set;
/**
* [简要描述]:增强for循环遍历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;
/**
* [简要描述]:增强for循环遍历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());
}
}
}
运行结果:
[猪悟能, 孙悟空, 沙悟净, 唐僧]
猪悟能
孙悟空
沙悟净
唐僧
到此这篇关于Java基础之集合Set详解的文章就介绍到这了,更多相关Java集合Set内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
免责声明:本站发布的内容(图片、视频和文字)以原创、来自互联网转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系QQ:712375056 进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
Copyright © 2009-2021 56dr.com. All Rights Reserved. 特网科技 特网云 版权所有 珠海市特网科技有限公司 粤ICP备16109289号
域名注册服务机构:阿里云计算有限公司(万网) 域名服务机构:烟台帝思普网络科技有限公司(DNSPod) CDN服务:阿里云计算有限公司 中国互联网举报中心 增值电信业务经营许可证B2
建议您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流浏览器浏览本网站