Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Set介绍

Set介绍

原创
作者头像
HLee
修改于 2021-10-22 07:14:08
修改于 2021-10-22 07:14:08
44500
代码可运行
举报
文章被收录于专栏:房东的猫房东的猫
运行总次数:0
代码可运行

简介

下面是Java中的集合类的关系图。从中可以大致了解集合类之间的关系

Set

Set 和 List 一样,也是继承 Collection 接口, Set 不保存重复的元素,如果试图将相同对象的多个实例添加到 Set 中,那么不好意思,它会立马阻止。Set 判断两个对象是否相同,使用的是 equals() 方法,只要该方法的结果是 true,Set 就不会接收这个对象。

HashSet

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
无参构造:
public HashSet() {
   map = new HashMap<>();
}

构造一个新的空 set,其底层 HashSet 实例的默认初始容量是 16,加载因子是 0.75。(当存储第13个元素时,则扩容。HashSet是由一个hash表来实现的,因此,它的元素是无序的。HashSet保证元素唯一性和hashcode方法以及equals方法相关。

  • 元素是无序的

LinkedHashSet

HashSet内部使用HashMap存储元素,所以HashSet遍历数据时是无序的,要保证插入的元素有序,我们可以使用LinkedHashSet。

LinkedHashSet继承自HashSet。查看LinkedHashSet的构造方法源码会发现内部都是调用父类的HashSet(int initialCapacity, float loadFactor, boolean dummy)方法。

  • 元素是有序的

TreeSet

TreeSet是由一个树形的结构来实现的,使用元素的自然顺序对元素进行排序,它里面的元素是有序的。

  • 元素是有序的

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Set集合
Set集合完整定义 public interface Set extends Collection
兰舟千帆
2022/07/16
5810
Set集合
精解四大集合框架:Set核心知识总结
Set继承于Collection接口,是一个不允许出现重复元素,并且无序的集合,主要有HashSet和TreeSet两大实现类,另外LinkedHashSet也有一定的使用频率。
田维常
2020/09/29
3110
精解四大集合框架:Set核心知识总结
Java集合,关于【List、Set、Map】
集合类存放于 Java.util 包中,主要有 3 种:set、list 和 map。
Java知音
2019/04/03
1K0
Set源码解析(红黑树)
HashSet是日常搬砖中最常用的,如果有了解过HashMap的实现,那么HashSet你也就理解了。
Liusy
2020/08/31
5430
Java集合总结
Java集合类主要有2大分支,Collection及Map。 Collection体系如下:
用户5325874
2020/01/16
6690
Java集合总结
java集合超详解
Collection 接口的接口 对象的集合(单列集合) ├——-List 接口:元素按进入先后有序保存,可重复 │—————-├ LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全 │—————-├ ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全 │—————-└ Vector 接口实现类 数组, 同步, 线程安全 │ ———————-└ Stack 是Vector类的实现类 └——-Set 接口: 仅接收一次,不可重复,并做内部排序 ├—————-└HashSet 使用hash表(数组)存储元素 │————————└ LinkedHashSet 链表维护元素的插入次序 └ —————-TreeSet 底层实现为二叉树,元素排好序
全栈程序员站长
2022/09/06
1.4K0
java集合超详解
Java 集合框架(7)---- Set 相关类解析
在上篇文章中,我们将剩下的常见的 Map 接口下的相关具体类做了一个解析,还有一些相关的类将会在下一篇文章中做一个总结,这篇我们来看看 Set 接口的相关类。老规矩,还是继续看一下 Set 接口下继承关系图:
指点
2019/01/18
5160
Java 集合框架(7)---- Set 相关类解析
Java数据结构-------Set
    HashSet对应 HashMap、LInkedHashSet对应LinkedHashMap、TreeSet对应TreeMap
在周末
2019/09/11
5440
Java集合详解7:一文搞清楚HashSet,TreeSet与LinkedHashSet的异同
《Java集合详解系列》是我在完成夯实Java基础篇的系列博客后准备开始写的新系列。
Java技术江湖
2019/10/12
5850
老哥,您看我这篇Java集合,还有机会评优吗?
集合在我们日常开发使用的次数数不胜数,ArrayList/LinkedList/HashMap/HashSet······信手拈来,抬手就拿来用,在 IDE 上龙飞凤舞,但是作为一名合格的优雅的程序猿,仅仅了解怎么使用API是远远不够的,如果在调用API时,知道它内部发生了什么事情,就像开了透视外挂一样,洞穿一切,这种感觉才真的爽,而且这样就不是集合提供什么功能给我们使用,而是我们选择使用它的什么功能了。
cxuan
2020/08/07
5900
老哥,您看我这篇Java集合,还有机会评优吗?
java中的集合
ArrayList和LinkedList的异同? 答:二者都线程不安全,相对线程安全的Vector,执行效率高。此外,ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add(特指插入)和remove,LinkedList比较占优势,因为ArrayList要移动数据。
全栈程序员站长
2022/07/18
1.7K0
java中的集合
赶快收藏!全网最佳Set集合详解:HashSet、TreeSet!
海外geeksforgeeks网站画了这么一张Set集合的层次结构图,基本把Set集合涉及的常用类关系给标明了。
JavaSouth南哥
2024/08/15
2172
赶快收藏!全网最佳Set集合详解:HashSet、TreeSet!
HashSet源码剖析
set之所以没有放到和Collection接口一块学习是因为set接口底层实现的还是Map接口。他只是相当于在map接口上做了一次封装。
用户11097514
2024/05/30
990
HashSet源码剖析
【145期】考考基础部分,谈谈Java集合中HashSet的原理及常用方法
HashSet是Java集合Set的一个实现类,Set是一个接口,其实现类除HashSet之外,还有TreeSet,并继承了Collection,HashSet集合很常用,同时也是程序员面试时经常会被问到的知识点,下面是结构图
良月柒
2021/03/09
3140
【145期】考考基础部分,谈谈Java集合中HashSet的原理及常用方法
Java总结之容器家族--Collection
Set的操作比较少,基本上也就是Collection传下来的方法 Set一般基于Map来实现:HashSet、LinkedHashSet、TreeSet的特性,根本上是HashMap、LinkedHashMap、TreeMap的特性
张风捷特烈
2018/10/08
8080
Java总结之容器家族--Collection
java集合,Collection,list,set,map汇总
Java是一门面向对象的语言,就免不了处理对象,为了方便操作多个对象,那么我们就得把这多个对象存储起来,想要存储多个对象(变量),很容易就能想到一个容器(集合)来装载
用户8870853
2021/07/27
3860
ArrayList、LinkedList、 Vector、Map 用法比较
ArrayList和Vector是采用数组方式存储数据,此数组元素总数大于实际存储的数据个数以便增加和插入元素,二者都允许直接序号索引元素,但是插入数据要移动数组元素等内存操作,所以它们索引数据快、插入数据慢。
阳光岛主
2019/02/19
6770
深入浅出的分析 Set集合
原文链接:https://blog.csdn.net/javageektech/article/details/103077788
chenchenchen
2019/11/26
5300
JDK1.8源码(十)——java.util.LinkedHashSet类
  同 HashSet 与 HashMap 的关系一样,本篇博客所介绍的 LinkedHashSet 和 LinkedHashMap 也是一致的。在 JDK 集合框架中,类似 Set 集合通常都是由对应的 Map 类集合来实现的(TreeSet 和 TreeMap 同理),这里很重要的一个理论就是:Set 类集合是不允许重复的,而 Map 类集合的 key 也是不允许重复的,所以通常很容易就用 Map 类集合实现了 Set 类集合。
IT可乐
2018/12/19
5220
【JDK1.8】JDK1.8集合源码阅读——Set汇总
一、前言 这一篇里,我将对HashSet、LinkedHashSet、TreeSet进行汇总分析,并不打算一一进行详细介绍,因为JDK对Set的实现进行了取巧。我们都知道Set不允许出现相同的对象,而
joemsu
2018/05/17
7150
相关推荐
Set集合
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验