美文网首页
Java中的Set集合

Java中的Set集合

作者: 历丨来 | 来源:发表于2019-03-28 09:14 被阅读0次

    Set集合是无序的(存储顺序和取出顺序不一致),元素是不能够出现重复的,具有唯一性。它的实现类有:

    HashSet

    • 概述
      • 不能保证取出顺序
      • 特别是它不保证顺序恒久不变,顺序具有随机性
    • HashSet集合是如何保证元素的唯一性
      • 基于哈希表(元素是链表数组)实现
      • 哈希表依赖于元素的哈希值存储
      • 保证唯一性依赖两个方法
        • int hashCode()
        • boolean equals(Object ob)
      • 实现的步骤:
        首先比较哈希值是否和已存储元素的哈希值相同,相同继续执行equals方法,如果返回true,说明该元素已被添加,取消添加;否则说明该元素没有被添加,则将该元素添加到集合当中。
      • 存储自定义对象
        • 在Set集合存储自定义对象,同时保证元素的唯一性。
        • 要求:如果两个元素的成员变量都是相同的,则判定为同一元素。
        • Set集合保证元素的唯一性依赖的是hashCode和equals方法,但是自定义对象没有重写,所以只能调用Object中的hashCode和equals方法,就算该元素的成员变量和集合中某个元素的成员变量都是相同的,它们的哈希值也是不一致的,所以判定该元素未被添加,并执行添加操作。为了达到自定义对象在Set集合中的唯一性,我们必须在自定义对象的类中重写hashCode()和equals()这两个方法就可以了。

    LinkedHashSet

    • 概述
      • 基于哈希表和链表实现
      • 由链表来保证元素的顺序(先进先出)
      • 由哈希表来保证元素的唯一性

    TreeSet

    -概述

    相关文章

      网友评论

          本文标题:Java中的Set集合

          本文链接:https://www.haomeiwen.com/subject/ptsfbqtx.html