社区
Java SE
帖子详情
set集合
rem_16_0312
2017-03-31 10:47:10
set集合中的元素为什么不能重复?
...全文
185
6
打赏
收藏
set集合
set集合中的元素为什么不能重复?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
取名好难
2017-04-01
打赏
举报
回复
list 和 set ,前者是类似与引用指向对象(数组和链表的实现),至于对象是否重复没有关系,我的引用不同就可以了,是可以区分集合的每一条数据的;后者存储的数据类似(key:value),value表示set集合的每一个元素的值,key是通过hash算法生成的,打个比方 String key = hash(value); 假如value相同,那么生成的key也相同,如何区分这两组数据?所以设计者设计set集的时候规定了每个元素的不同。
Glavo
2017-04-01
打赏
举报
回复
因为Set的需求就是不能重复,所以会设计成这样。HashSet也不是唯一的实现,譬如TreeSet内部不使用Hash,而是维护着一个RBT来保存数据
码上行动_Light
2017-04-01
打赏
举报
回复
HashSet 内部的数据结构是 HashMap, 而Map的数据结构是 (key ,value)对,其中key是使用hashCode计算和equals两个算法去确保唯一的(这两个算法到底如何确保唯一你要去看jdk源码了,因为我看过,我发现很难简单的给人讲明白,只能自己去看,自己去算),回到Set, HashSet 内的数据结构就是一个 value值都一样的HashMap,说白了——这里只用了key,key的集合就是set本身了。 其实说这么多,有装逼嫌疑,如果真想弄明白,还是去看源码吧。
李德胜1995
2017-03-31
打赏
举报
回复
set的add方法使用的是HashMap的put方法。。先使用hashCode比较,再用equals比较。。。可以去看一下HashMap的代码
rem_16_0312
2017-03-31
打赏
举报
回复
我刚刚搜到说:set集合中,会根据对象的hashcode去重
爪哇学渣
2017-03-31
打赏
举报
回复
这个问题太有深度了,jdk设定的时候就是有这样的特性
java中
set
集合
的特点_Java
集合
之
Set
集合
Set
集合
Set
集合
的特点无序、不可重复。
Set
集合
不能记住元素的添加顺序。
Set
集合
不能包含相同的元素,把两个相同的元素添加到同一个
Set
集合
中,则添加失败,add() 方法返回 false,且新元素不会被添加。Hash
Set
...
Set
集合
去重和比较方法
Set
集合
特点: 无序(没有下标)
集合
中的元素不重复Hash
Set
hash
set
具有去重功能例: 创建一个hash
set
保存 f f a a b b d d Hash
Set
<String>
set
= new Hash
Set
<>();
set
.add("f&...
python中的
set
集合
_python中的
set
集合
详解
一、
集合
1.
set
集合
的介绍
集合
是无序的,不可重复的数据
集合
,
集合
里面的每个元素必须是可哈希的(不可变的数据类型),但是
集合
是不可哈希的,所以
集合
做不了字典的键
集合
的创建方式:①:通过
set
()创建
集合
,格式 :...
Python
Set
集合
排序
第一种方法是使用sorted()函数,它可以对
Set
集合
进行排序并返回一个排序后的列表,然后我们可以将其转换回
Set
类型。在上面的代码中,我们使用sorted()函数与lambda函数结合对
Set
集合
进行排序。然后,我们将返回的...
Set
集合
及其实现类
Set
集合
及其实现类 一、
Set
集合
1.
Set
集合
按照无序、不允许重复的方式存放对象。
Set
集合
是无序的,没有下标,所以没有**get()**方法。 2.存储特点:无序存储,且不可以存储相同的元素(排重),不能通过下标访问。 二...
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章