zoukankan      html  css  js  c++  java
  • 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,认为元素相等。

  • 相关阅读:
    twitter api的使用获取关注者的时间线
    使用CloudSight API进行图像识别的Python脚本
    发送请求工具—Advanced REST Client
    windows使用celery遇到的错误
    Pythonic
    celery学习之入门
    windows中安装redis
    pandas 读写sql数据库
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
    MySQL 存储引擎
  • 原文地址:https://www.cnblogs.com/judylucky/p/4549036.html
Copyright © 2011-2022 走看看