• java基础(七)--- set


    Set

    (1)Set集合的特点
    无序(存入和取出顺序),唯一


    (2)HashSet集合
      A:底层数据结构是哈希表(是一个元素为链表的数组)
      B:哈希表底层依赖两个方法:hashCode()和equals()
        执行顺序:
        首先比较哈希值是否相同
        相同:继续执行equals()方法
        返回true:元素重复了,不添加
        返回false:直接把元素添加到集合
        不同:就直接把元素添加到集合
       C:如何保证元素唯一性的呢?
      由hashCode()和equals()保证的

    注意:如果需要把某个类的对象保存到HashSet集合中,重写equals()方法和hashCode()方法是,尽量保证对象通过equals()方法返回值为true时,hashCode的返回值也为true;

       HashSet中每个能存储元素的“槽位”slot通常被称为“桶”bucket,如果有多个元素的hashCode值相同,但equals()方法返回false。就需要在一个“桶”里放多个元素,这样会导致性能下降;

    (3)TreeSet集合
      A:底层数据结构是红黑树(是一个自平衡的二叉树)
      B:保证元素的排序方式
        a:自然排序(元素具备比较性)
          让元素所属的类实现Comparable接口
        b:比较器排序(集合具备比较性)
          让集合构造方法接收Comparator的实现类对象

     TreeSet判断两个元素是否相等,是通过compareTo()方法返回值,值为0,认为元素相等。

  • 相关阅读:
    4.iptables 网络防火墙
    iterator not dereferencable问题
    秒杀多线程系列中的题目
    说说僵尸和孤儿进程的那点儿事
    Linux的fork()写时复制原则(转)
    linux进程原语之fork()
    linux--多进程进行文件拷贝
    哈夫曼树与哈夫曼编码
    csp公共钥匙盒
    字典树
  • 原文地址:https://www.cnblogs.com/judylucky/p/4549036.html
Copyright © 2020-2023  润新知