zoukankan      html  css  js  c++  java
  • Set集合

    1、特点

    不包含重复元素的集合
    没有带索引的方法,所以不能使用普通for循环遍历
    2、哈希值
    是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值

    Object类中有一个方法可以获取对象的哈希值
    
         public int hashCode():返回对象的哈希码值
    

    3、对象的哈希值特点

    同一个对象多次调用hashCode()方法返回的哈希值是相同的
    默认情况下,不同对象的哈希值是不同的,而重写hashCode()方法,可以实现让不同对象的哈希值相同
    4、HashSet集合特点
    底层数据结构是哈希表
    对集合的迭代顺序不作任何保证,也就是说不保证存储和去除的元素顺序一致
    没有带索引的方法,所以不能使用普通for循环遍历
    由于是Set集合,所以是不包含重复元素的
    5、哈希表
    JDK8之前,底层采用数组+链表实现,可以说是一个元素为链表的数组
    JDK8以后,在长度比较长的时候,底层实现了优化
    6、LinkedHashSet集合特点
    哈希表和链表实现的Set接口,具有可预测的迭代次序
    由链表保证元素有序,也就是说元素的存储和取出顺序是一致的
    由哈希表保证元素唯一,也就是说没有重复的元素
    7、TreeSet集合特点
    元素有序,这里的顺序不是指存储和取出的顺序,而是按照一定的规则进行排序,具体排序方式取决于构造方法
    TreeSet():根据元素的自然排序进行排序
    TreeSet(Comparator comparator):根据指定的比较器进行排序
    没有带索引的方法,所以不能使用普通for循环遍历
    由于是Set集合,所以不包含重复元素的集合
    8、自然排序Comparable的使用
    结论:
    用TreeSet集合存储自定义对象,无参构造方法使用的是自然排序对元素进行排序的
    自然排序,就是让元素所属的类实现Comparable接口,重写comparaTo()方法
    重写方法时,一定要注意排序规则必须按照要求的主要条件和次要条件来写
    9、比较器排序Comparator的使用
    结论:
    用TreeSet集合存储自定义对象,带参构造方法使用的是比较器排序对元素进行排序的
    比较器排序,就是让集合构造方法接收Comparator的实现类对象,重写compareTo(T o1,o2)方法
    重写方法时,一定要注意排序规则必须按照要求的主要条件和次要条件来写

  • 相关阅读:
    付宇泽20190912-1 每周例行报告
    付宇泽20190912-3 词频统计
    付宇泽20190912-2 命令行
    付宇泽20190905-1 每周例行报告
    付宇泽20190905-2 博客作业
    付宇泽20190905-3 命令行和控制台编程
    罗杨美慧 20190905-3 命令行和控制台编程
    【Linux运维】Centos7上借助ansible搭建LVS+Keepalived
    【shell 练习1】编写Shell条件句练习
    【第四章】Shell 条件测试表达式
  • 原文地址:https://www.cnblogs.com/guhetongren/p/13944580.html
Copyright © 2011-2022 走看看