Set接口

Set接口

Set 接口是 Java 集合框架中的一个核心接口,继承自 Collection 接口。它表示一个 不包含重复元素 的集合,即集合中的元素是唯一的

Set接口特点

  1. 不允许重复元素

    • Set 中的元素是唯一的,如果尝试添加重复元素,添加操作会被忽略。

    • 元素的唯一性是通过 equals() 和 hashCode() 方法来判断的

  2. 无序性

    • Set 不保证元素的顺序(除了 LinkedHashSet 和 TreeSet)。
    • 取出的顺序不是添加的顺序,但是这个顺序是固定的
    • HashSet 是无序的,LinkedHashSet 维护插入顺序,TreeSet 根据元素的自然顺序或指定的比较器排序
  3. 允许 null 元素

    • 大多数 Set 实现类(如 HashSet 和 LinkedHashSet)允许存储 null 值,但 TreeSet 不允许
    • 不允许多个null值
  4. 非线程安全

    • Set 的实现类(如 HashSet、LinkedHashSet 和 TreeSet)不是线程安全的。

Set接口常用方法

Set 接口继承了 Collection 接口的所有方法,但由于 Set 不允许重复元素,因此某些方法的行为与 Collection 有所不同

2.1 添加元素

  • boolean add(E e):向集合中添加一个元素。如果集合中已经包含该元素,则返回 false,否则返回 true

2.2 删除元素

  • boolean remove(Object o):从集合中移除指定的元素。如果集合包含该元素并成功移除,则返回 true,否则返回 false
  • boolean removeAll(Collection<?> c):从集合中移除所有包含在指定集合中的元素。
  • boolean retainAll(Collection<?> c):仅保留集合中那些也包含在指定集合中的元素。
  • void clear():清空集合中的所有元素。

2.3 查询元素

  • boolean contains(Object o):判断集合中是否包含指定的元素。
  • boolean containsAll(Collection<?> c):判断集合中是否包含指定集合中的所有元素。
  • boolean isEmpty():判断集合是否为空。
  • int size():返回集合中的元素数量。

2.4 遍历元素

  • Iterator<E> iterator():返回一个用于遍历集合中元素的迭代器。

2.5 集合转换

  • Object[] toArray():将集合转换为一个数组。
  • <T> T[] toArray(T[] a):将集合转换为指定类型的数组。

Set接口的常见实现类

  1. HashSet
    • 基于哈希表实现,元素无序。
    • 允许存储 null 值。
    • 添加、删除和查询操作的时间复杂度为 O(1)
  2. LinkedHashSet
    • 基于哈希表和链表实现,维护元素的插入顺序。
    • 允许存储 null 值。
    • 添加、删除和查询操作的时间复杂度为 O(1)
  3. TreeSet
    • 基于红黑树实现,元素按照自然顺序或指定的比较器排序。
    • 不允许存储 null 值。
    • 添加、删除和查询操作的时间复杂度为 O(log n)
posted @   QAQ001  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示