当前位置:   article > 正文

Java集合框架-Collection-Set-HashSet&TreeSet&LinkedHashSet简介

Java集合框架-Collection-Set-HashSet&TreeSet&LinkedHashSet简介

一、HashSet

在这里插入图片描述

概述

HashSet 是 Java 中的一个集合类,它实现了 Set 接口,用于存储不重复的元素。它基于 HashMap 实现(对HashMap的一个简单封装),底层数据结构是HashTable,并继承了 HashMap 的一些方法。需要注意的是,HashSet 中的元素是无序的,并且不允许重复。

底层数据结构

/**
 * The HashMap which backs this Set.
 */
private transient HashMap<T, String> map;
  • 1
  • 2
  • 3
  • 4

常用方法

HashSet 是 Java 中的一个集合类,它实现了 Set 接口,用于存储不重复的元素。它基于 HashMap 实现,并继承了 HashMap 的一些方法。

添加元素

  • add(E e): 将指定的元素添加到 HashSet 中,如果元素已经存在,则不添加并返回 false
  • addAll(Collection c): 将指定集合中的所有元素添加到 HashSet 中。

删除元素

  • remove(Object o): 从 HashSet 中删除指定的元素,如果元素存在则返回 true,否则返回 false
  • clear(): 清空 HashSet 中的所有元素。

判断元素

  • contains(Object o): 判断 HashSet 中是否包含指定的元素,如果包含则返回 true,否则返回 false
  • isEmpty(): 判断 HashSet 是否为空,如果为空则返回 true,否则返回 false

获取信息

  • size(): 返回 HashSet 中元素的数量。
  • iterator(): 返回一个迭代器,用于遍历 HashSet 中的元素。

其他方法

  • toArray(): 将 HashSet 中的元素转换为数组。
  • containsAll(Collection c): 判断 HashSet 是否包含指定集合中的所有元素。
  • removeAll(Collection c): 从 HashSet 中删除包含在指定集合中的所有元素。
  • retainAll(Collection c): 从 HashSet 中删除所有未包含在指定集合中的元素。

二、TreeSet

在这里插入图片描述

概述

TreeSet 也是 Java 中的一个集合类,它同样实现了 Set 接口,并继承了 SortedSet 接口。TreeSet 基于 TreeMap 实现,底层数据结构是红黑树,可以对元素进行排序。需要注意的是,TreeSet 中的元素是有序的,并且不允许重复。元素的排序方式取决于元素的自然顺序或指定的比较器。

底层数据结构

/**
 * The NavigableMap which backs this Set.
 */
// Not final because of readObject. This will always be one of TreeMap or
// TreeMap.SubMap, which both extend AbstractMap.
private transient NavigableMap<T, String> map;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

常用方法

添加元素

  • add(E e): 将指定的元素添加到 TreeSet 中,并根据元素的自然顺序或指定的比较器进行排序。
  • addAll(Collection c): 将指定集合中的所有元素添加到 TreeSet 中。

删除元素

  • remove(Object o): 从 TreeSet 中删除指定的元素。
  • clear(): 清空 TreeSet 中的所有元素。

判断元素

  • contains(Object o): 判断 TreeSet 中是否包含指定的元素。
  • isEmpty(): 判断 TreeSet 是否为空。
  • first(): 返回 TreeSet 中的第一个元素。
  • last(): 返回 TreeSet 中的最后一个元素。

范围操作

  • headSet(E toElement): 返回小于指定元素的元素集合。
  • tailSet(E fromElement): 返回大于等于指定元素的元素集合。
  • subSet(E fromElement, E toElement): 返回大于等于 fromElement 且小于 toElement 的元素集合。

导航方法

  • lower(E e): 返回小于指定元素的最大的元素。
  • higher(E e): 返回大于指定元素的最小元素。
  • floor(E e): 返回小于等于指定元素的最大的元素。
  • ceiling(E e): 返回大于等于指定元素的最小的元素。

其他方法

  • size(): 返回 TreeSet 中元素的数量。
  • iterator(): 返回一个迭代器,用于遍历 TreeSet 中的元素。
  • descendingIterator(): 返回一个逆序迭代器,用于逆序遍历 TreeSet 中的元素。

三、LinkedHashSet

在这里插入图片描述

概述

LinkedHashSet 继承自 HashSet 并实现了 Set 接口。LinkedHashSet 的特点是维护元素的插入顺序,也就是说,遍历 LinkedHashSet 中的元素时,会按照元素添加的顺序访问它们。需要注意的是,LinkedHashSet 中的元素也是不允许重复的;LinkedHashSet 与 HashSet 的主要区别在于:LinkedHashSet 维护元素的插入顺序,而 HashSet 不维护。LinkedHashSet 的性能略低于 HashSet,因为需要维护插入顺序。

底层数据结构

LinkedHashSet的底层数据是哈希表+双向链表

常用方法

添加元素

  • add(E e): 将指定的元素添加到 LinkedHashSet 的末尾。
  • addAll(Collection c): 将指定集合中的所有元素添加到 LinkedHashSet 的末尾。

删除元素

  • remove(Object o): 从 LinkedHashSet 中删除指定的元素。
  • clear(): 清空 LinkedHashSet 中的所有元素。

判断元素

  • contains(Object o): 判断 LinkedHashSet 中是否包含指定的元素。
  • isEmpty(): 判断 LinkedHashSet 是否为空。

获取信息

  • size(): 返回 LinkedHashSet 中元素的数量。
  • iterator(): 返回一个迭代器,用于按照插入顺序遍历 LinkedHashSet 中的元素。

其他方法

  • toArray(): 将 LinkedHashSet 中的元素转换为数组。
  • containsAll(Collection c): 判断 LinkedHashSet 是否包含指定集合中的所有元素。
  • removeAll(Collection c): 从 LinkedHashSet 中删除包含在指定集合中的所有元素。
  • retainAll(Collection c): 从 LinkedHashSet 中删除所有未包含在指定集合中的元素。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/866506
推荐阅读
相关标签
  

闽ICP备14008679号