入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

为什么Set会去重

创建时间:2017-05-15 投稿人: 浏览次数:1612

Set之所以会去重,和map有很大的关系。
看源码你会发现HashSet底层使用HashMap存储
TreeSet底层使用TreeMap存储
LinkedHashSet底层使用LinkedHashMap存储

拿HashSet为例子,我们查看add()方法的源码

  public boolean add(E e) {
        return map.put(e, PRESENT)==null;
    }

return的map对象其实是 一个HashMap

  private transient HashMap<E,Object> map;

再看map.put(e, PRESENT)
被传进来的泛型对象当成了Map的键,因为Map键值重复的话新的键会覆盖旧的键值,所以Set不会重复。

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像