zoukankan      html  css  js  c++  java
  • JAVA Collection 子接口之 Set

    摘抄自 b站尚硅谷JAVA视频教程

    Set接口有三个实现类:

    /----HashSet: Set接口的主要实现类;线程不安全的;可以存储null值;底层:数组+链表

      /----LinkedSet:作为HashSet的子类,增加了Link,使得遍历的时候,可以按照添加的顺序遍历.对于频繁的遍历,效率更高

    /----TreeSet:使用红黑树实现,可以对添加元素进行自定义排序.添加的元素必须是同一类.

       添加的类必须是可比较的,有两种方法:Comparable 和 Comparator 两种方式.

    向HashSet 添加的类,一定要重写 hashCode方法和equals方法,且尽可能保持一致性.

    HashSet添加新元素 a :

      通过hash算法,计算hash值,通过某种映射映射到数组对应的索引上;

      1 若该索引位置没有元素,则添加;

      2 若有元素 b ,则比较hash值,若hash值不同,则添加;

      3 若hash值相同,则调用equals方法,若返回结果为false,则添加,否则添加失败.

      在 2 3情况中,若 a元素添加成功:

        JDK 7 : 元素a放入数组,指向元素b

        JDK 8 : 元素b不变,指向元素a

     做错了,要记住java是值引用.

    输出结果为:

    1001,CC  1002,BB

    1001,CC   1002,BB  1001,CC

    1001,CC  1002,BB  1001,CC  1001,AA

     

     

     

  • 相关阅读:
    大假期第二次测试总结
    大假期第一次测试
    拦截导弹简单版——线性dp
    我的vim配置
    2E Bank Hacking——思维题
    2D poj Cow Relays——folyd+矩阵快速幂
    2C Numerical Sequence (hard version)
    2A Subset——折半枚举+二分
    2B 米特运输
    偷天换日——树状DP
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/12317739.html
Copyright © 2011-2022 走看看