zoukankan      html  css  js  c++  java
  • Java集合(五) Set 添加元素

    Java中Set集合是如何实现添加元素保证不重复的?

      Set集合是一个无序的不可以重复的集合。今天来看一下为什么不可以重复。

      Set是一个接口,最常用的实现类就是HashSet,以HashSet为例。

      HashSet类实现了Set接口, 其底层其实是包装了一个HashMap去实现的。HashSet采用HashCode算法来存取集合中的元素,因此具有比较好的读取和查找性能。

    HashSet 添加元素过程

      向 HashSet 添加元素,首先调用元素所在类的 hashCode() 方法,计算元素的哈希值,算出在 hashset 底层数组的存放位置。

      判断数组该位置上是否已经有元素。

        如果该位置没有其他元素,则元素添加成功。

        如果该位置,有其他元素,则比较两个元素的 hash 值是否相同;

            如果 hash值不相同,则元素添加成功, 以链表的形式存储;

            如果 hash值相同,再用 该类的equal() 方法比较

              equal  返回 true, 元素添加失败,替换了该元素

              equal 返回false 元素添加成功, 并以链表的节点形式存储

      更详细看:https://www.cnblogs.com/wupeixuan/p/8858816.html

    【1】:https://www.cnblogs.com/wupeixuan/p/8858816.html

  • 相关阅读:
    小工具
    git
    git如何做个人构建
    菜鸟教程
    Xftp和Xshell
    IDEA
    webStorm
    HBuilder
    chrome浏览器
    Vue-Server-Renderer
  • 原文地址:https://www.cnblogs.com/Jomini/p/13960570.html
Copyright © 2011-2022 走看看