set为什么不能存储重复值

Posted zhuyeshen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了set为什么不能存储重复值相关的知识,希望对你有一定的参考价值。

技术图片
图示

set的两个主要实现类,TreeSet和HashSet,底层存储结构都是用的map,而且是将set需要存储的值放在map的key里的,PRESENT是一个空的object对象。

map每次put如果key值不存在,返回的是null,key值如果存在,则返回之前key的oldValue,这样与null做对比的时候返回的就是false,在set层面就是插入重复值失败了

以上是关于set为什么不能存储重复值的主要内容,如果未能解决你的问题,请参考以下文章

[转]Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还 是 equals()?它们有何区别?

Set集合,放的元素不能重复,请问它的判断重不重复是怎么实现的?

java set接口

ListMapSet 三个接口,存取元素时,各有什么特点?

java集合-set

集合详解(附集合框架图)