• 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)方法
    重写方法时,一定要注意排序规则必须按照要求的主要条件和次要条件来写

  • 相关阅读:
    Android error--No implementation found for native Lcomd
    【CareerCup】Trees and Graphs—Q4.3
    android 分享到QQ空间的全部操作
    ubuntu12.04安装翻译软件stardict及卸载
    Java获取当前操作系统的信息
    WebForm和MVC中都可以使用的路由
    使用 System.Transactions 进行事物管理
    .NET中四种常用事物
    sql语句:创建事物
    sql语句:CASE WHEN END 的用法
  • 原文地址:https://www.cnblogs.com/guhetongren/p/13944580.html
Copyright © 2020-2023  润新知