
set的两个主要实现类,TreeSet和HashSet,底层存储结构都是用的map,而且是将set需要存储的值放在map的key里的,PRESENT是一个空的object对象。
map每次put如果key值不存在,返回的是null,key值如果存在,则返回之前key的oldValue,这样与null做对比的时候返回的就是false,在set层面就是插入重复值失败了
本文探讨了Java集合框架中set的主要实现类:TreeSet和HashSet。这两种实现都基于map结构,通过将值存储为key来确保元素的唯一性。当尝试插入重复值时,由于map返回旧值而非null,从而在set层面阻止了重复值的插入。

set的两个主要实现类,TreeSet和HashSet,底层存储结构都是用的map,而且是将set需要存储的值放在map的key里的,PRESENT是一个空的object对象。
map每次put如果key值不存在,返回的是null,key值如果存在,则返回之前key的oldValue,这样与null做对比的时候返回的就是false,在set层面就是插入重复值失败了

被折叠的 条评论
为什么被折叠?