当前位置:首页 > 技术 >

java的set用法(java 什么时候使用set)

来源:原点资讯(www.yd166.com)时间:2023-04-10 13:59:33作者:YD166手机阅读>>

欢迎来到全网最完整的java进阶知识系列教程!!!每天定时更新!!!

本期是Java进阶知识系列的第五讲,继上一讲List类的内容之后,今天的主题是另一个集合类——Set。

如果你正在学习Java,不妨收藏这篇文章,或者关注我,定期收获与Java有关的知识和项目信息!

java的set用法,java 什么时候使用set(1)

之前四课的内容,可点击下方获取:






java的set用法,java 什么时候使用set(2)

​接下来就让我们正式开始分享课程内容吧。

一、HashSet

Set类是无序、不可重复的数据集合,HashSet是Set类的实现接口。

示例代码:

import java.util.HashSet; import java.util.Set; public class SetDemo { public static void main(String[] args) { // 初始化集合Set Set<String> langset = new HashSet<String>(); // 向集合里添加数据 langset.add("java"); langset.add("python"); langset.add("go"); System.out.println("集合为:" langset); // 获取集合数据量 System.out.println("集合的数据量为:" langset.size()); // 查看数据是否已存在 System.out.println("go记录是否已存在:" langset.contains("go")); } }

运行结果:

集合为:[python, java, go] 集合的数据量为:3 go记录是否已存在:false

说明:

  • 从上例可以看出,HashSet的顺序与添加的顺序无关,是无序排列的,体现了Set类的无序性特点。

二、LinkedHashSet

LinkedHashSet最大的特点是:虽然存储是无序的,但通过链表结构,LinkedHashSet在调取和打印的时候,可以实现依添加顺序输出。

示例代码:

import java.util.LinkedHashSet; import java.util.Set; public class SetDemo { public static void main(String[] args) { // 初始化集合Set Set<String> langset = new LinkedHashSet<String>(); // 向集合里添加数据 langset.add("java"); langset.add("python"); langset.add("go"); System.out.println("集合为:" langset); } }

运行结果:

集合为:[java, python, go]

说明:

  • 可以看到,在打印LinkedHashSet的时候,顺序是和添加顺序一致,这是LinkedHashSet的特性。

三、TreeSet

TreeSet的特性是,它的数据存储虽然是无序的,但输出顺序是根据内建的比较器来决定的

示例代码:

import java.util.Comparator; import java.util.Set; import java.util.TreeSet; public class SetDemo { public static void main(String[] args) { // 初始化集合Set Set<Integer> numset = new TreeSet<Integer>(new Comparator1()); // 向集合里添加数据 numset.add(10); numset.add(90); numset.add(30); System.out.println("集合为:" numset); } // 比较器 static class Comparator1 implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { // 降序排列的设定 return o2-o1; } } }

运行结果:

集合为:[90, 30, 10]

说明:

  • 从上例可以看到,输出的顺序并不是根据添加数据的顺序来的,这是因为TreeSet的特性是根据比较器结果得到的顺序输出;
  • 这里的Comparator1内部类通过实现Comparator接口的方式,完成比较器的设置,并赋给numset;
  • Comparator1中的成员方法compare就是比较器的逻辑,o2-o1表示降序,反之,o1-o2表示升序
  • Comparator一般不需要是静态类,之所以这里定义static class Comparator1 implements Comparator<Integer>,是因为主方法main是静态方法。

以上就是Java进阶知识系列第五讲的全部内容。

跟着老K一起每天积累一点点,学习Java就不会有负担。

正在学习的小伙伴记得给老K一个赞哦,你的支持是我持续输出课程内容最大的动力!

java的set用法,java 什么时候使用set(3)

想了解Java基础部分的课程内容,可以查看以下链接:

结束语

我是专注于开发领域的 ,会持续生产关于如何学习编程语言的优质内容。

如果你想学习Java编程,或者想精进你的Java编程能力,可以关注我。

如果你对开发、编程有任何疑问或者有想了解的内容,而我暂时没有写到的,也欢迎随时来找我聊聊。

java的set用法,java 什么时候使用set(4)

,

栏目热文

java中反射set方法和get方法(java通过反射获取类的属性)

java中反射set方法和get方法(java通过反射获取类的属性)

目录:一.反射基础二.反射的作用三.反射机制执行的流程一.反射基础什么是反射?反射使 java 代码可以发现有关已加载类...

2023-04-10 13:38:06查看全文 >>

java中set的用法整理(java里set如何使用)

java中set的用法整理(java里set如何使用)

Set是Java集合类中的一部分,继承了Collection接口。特点:Set中的数据不允许重复。基本操作1、创建Set...

2023-04-10 13:25:06查看全文 >>

java中的get和set方法有什么用(javaget方法和set方法有什么用)

java中的get和set方法有什么用(javaget方法和set方法有什么用)

我们先来看看set和get这两个词的表面意思,set是设置的意思,而get是获取的意思,顾名思义,这两个方法是对数据进行...

2023-04-10 14:08:20查看全文 >>

java中set和get用法(java中set集合的用法)

java中set和get用法(java中set集合的用法)

对于 java 初学者来说,set 和 get 这两个方法似乎已经很熟悉了,这两个方法就是 JAVA 编程中的基本用法,...

2023-04-10 13:21:23查看全文 >>

java类的get和set方法是灰色的(javaget方法和set方法有什么用)

java类的get和set方法是灰色的(javaget方法和set方法有什么用)

对于 java 初学者来说,set 和 get 这两个方法似乎已经很熟悉了,这两个方法就是 JAVA 编程中的基本用法,...

2023-04-10 13:31:23查看全文 >>

岗南水库最深多少米(岗南水库一般多深)

岗南水库最深多少米(岗南水库一般多深)

河北位于我国华北地区,西部和北部是高山,南部和东部是平原。本省属于温带大陆型季风气候,年均降水量500毫米左右,水资源紧...

2023-04-10 14:10:27查看全文 >>

河北第一大水库(河北十大水库排名)

河北第一大水库(河北十大水库排名)

旅游风物志,揽四海胜景,博人间风华。河北唐山,素有“京东宝地”之称,地貌复杂多样,整体来说,背山临海,位于迁西县的八面峰...

2023-04-10 14:08:24查看全文 >>

黄壁庄水库深度多少米(黄壁庄水库库容量多少)

黄壁庄水库深度多少米(黄壁庄水库库容量多少)

炎炎夏日,带上家人邂逅绿水青山,在大自然中感受清凉。或静坐在山顶,观云海涌动、星空灿烂;或立在岸边,看夕阳西下,享人生美...

2023-04-10 13:50:42查看全文 >>

王快水库水深多少米(王快水库的水主要来自哪里)

王快水库水深多少米(王快水库的水主要来自哪里)

■回眸百年党史 见证“治水”初心系列报道之四□本报记者 安亚静 邸志永 刘澜8月2日,王快水库溢洪道水声阵阵。库水从提起...

2023-04-10 14:01:07查看全文 >>

黄壁庄水库最大存水量多少立方

黄壁庄水库最大存水量多少立方

7月11日8时至12日8时,石家庄市普降大雨到暴雨,局部大暴雨。记者从石家庄水利部门获悉,全市平均降水量60毫米,基本报...

2023-04-10 13:47:16查看全文 >>

文档排行