HashSet与TreeSet的去重机制

HashSet

    hashCode() + equals(),底层先通过存入对象,进行运算得到一个hash值,通过hash值得到对应的索引。如果table索引所在的位置没有数据,就直接存放;如果有数据,就进行equals比较[遍历比较],比较后不相同,就加入,否则就不加入。

TreeSet

    如果实例化的时候传入了一个Comparator匿名对象,就使用实现的compare去重(方法返回0即认为是相同的元素/数据,不添加,反之添加),如果实例化时没有传入一个Comparator匿名对象,则以添加的对象实现的Comparator接口的compareTo去重

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 9,712评论 0 16
  • Java 基础 语言特性 优点 ① 平台无关,摆脱硬件束缚,"一次编写,到处运行"。 ② 安全的内存管理和访问机制...
    续袁阅读 3,762评论 0 1
  • 面试专题我放在git上了,地址Github 欢迎fork然后一起更新 Java基础点 0,面对对象OOP和面对过程...
    hloong阅读 4,300评论 0 3
  • Catalog 1 HashMap原理1.1 HashMap JDK1.7实现1.2 HashMap JDK1.8...
    allen锅阅读 3,328评论 0 1
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,728评论 28 53