zoukankan      html  css  js  c++  java
  • 四、Set接口

    Set:元素不可以重复,是无序。Set接口中的方法和Collection一致。
     
    1.HashSet: 内部数据结构是哈希表 ,是不同步的。
         如何保证该集合的元素唯一性呢?
             是通过对象的hashCode和equals方法来完成对象唯一性的。
             如果对象的hashCode值不同,那么不用判断equals方法,就直接存储到哈希表中。
             如果对象的hashCode值相同,那么要再次判断对象的equals方法是否为true。
             如果为true,视为相同元素,不存。如果为false,那么视为不同元素,就进行存储。
             
             记住:如果元素要存储到HashSet集合中,必须覆盖hashCode方法和equals方法。
             一般情况下,如果定义的类会产生很多对象,比如人,学生,书等通常都需要覆盖equals,hashCode方法。以此来建立对象判断是否相同的依据。
     
     
    2.TreeSet:可以对Set集合中的元素进行排序。是不同步的。底层数据结构是二叉树。
              判断元素唯一性的方式:就是根据比较方法(comparableTo)的返回结果是否是0,是0,就是相同元素,不存。
                       
              TreeSet对元素进行排序的方式一:
                        让元素自身具备比较功能,元就需要实现Comparable接口。覆盖compareTo方法。
                       
               如果不要按照对象中具备的自然顺序进行排序。如果对象中不具备自然顺序。怎么办?
               可以使用TreeSet集合第二种排序方式二:
               让集合自身具备比较功能,定义一个类实现Comparator接口,覆盖compare方法。
               将该类对象作为参数传递给TreeSet集合的构造函数。
  • 相关阅读:
    86. Partition List
    328. Odd Even Linked List
    19. Remove Nth Node From End of List(移除倒数第N的结点, 快慢指针)
    24. Swap Nodes in Pairs
    2. Add Two Numbers(2个链表相加)
    92. Reverse Linked List II(链表部分反转)
    109. Convert Sorted List to Binary Search Tree
    138. Copy List with Random Pointer
    为Unity的新版ugui的Prefab生成预览图
    ArcEngine生成矩形缓冲区
  • 原文地址:https://www.cnblogs.com/lzxl/p/4312886.html
Copyright © 2011-2022 走看看