zoukankan      html  css  js  c++  java
  • Java中的Set集合以及HashSet

    Set集合:


    Set继承自Collection,所以没有什么特别的方法。
    需要注意的是,Set集合不包含重复元素,我们重点了解Set集合如何保证不包含多余元素。

    HashSet:


    HashSet如何保证元素唯一?


    我们第二次添加"abc"到HashSet,"abc"从add()传入put()中的Key,然后到putVal中的key,
    putVal中的hash(key)是根据算法,把元素的一些信息映射成哈希值,用来hashcode()。
    第一个if,判断hash表是否为空,我们的hash表不为空
    第二个if,一个看不懂的算法,意思是根据hash(key)得到的hash值寻址到对应hash表的位置P,这个P位置是空的么?
    如果是空,则就填入"abc"。
    如果不是,我们进入第一个else,我们的"abc"与P位置内的元素进行比较:
    k = p.key;
    key.equals(k);
    如果二者一样,那么就替换(这里是在hash数组,所以替换)
    如果二者不同,那么进入第二个else,我们的"abc"循环与挂在P下面的链表中元素进行equals比较,
    如果存在一致的,则把"abc"丢弃,否则就循环找到链表尾,把"abc"挂在表尾。

    重写HashCode



  • 相关阅读:
    Effective C++:条款14:在中小企业资源管理copying表现
    Linux在iptables教程基本应用防火墙
    C++内存分配和拷贝构造函数写研究
    Codeforces 479E Riding in a Lift(dp)
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
  • 原文地址:https://www.cnblogs.com/maomaodesu/p/11878424.html
Copyright © 2011-2022 走看看