Java HashSet


Java HashSet文档

简介

Java HashSet是一种基于哈希表实现的Set集合,是Java中常用的数据结构之一,允许存储空值。HashSet中的元素不按特定的顺序排序,即插入的元素不一定在集合中的位置。HashSet本质上是一个value为Object类型的HashMap,因此HashSet的元素必须实现hashCode()和equals()方法。

构造方法

HashSet();
HashSet(Collection<? extends E> c);
HashSet(int initialCapacity);
HashSet(int initialCapacity, float loadFactor);
  • HashSet():创建一个空的HashSet对象
  • HashSet(Collection<? extends E> c):使用另一个Collection创建一个HashSet对象
  • HashSet(int initialCapacity):创建一个具有指定初始容量的HashSet对象
  • HashSet(int initialCapacity, float loadFactor):创建一个具有指定初始容量和负载因子的HashSet对象

常用方法

增加元素

boolean add(E e);
  • add(E e):将元素插入到HashSet中,如果该元素尚未存在,则返回true,否则返回false。

删除元素

boolean remove(Object o);
void clear();
  • remove(Object o):从HashSet中删除指定元素,如果删除成功,则返回true,否则返回false。
  • clear():将HashSet中的所有元素全部删除。

查询元素

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

其他方法

int size();
Object[] toArray();
  • size():返回HashSet对象中元素的数量。
  • toArray():将HashSet对象转换为数组,并返回一个包含该数组的Object对象,该数组包含HashSet中的所有元素。

示例

HashSet<String> set = new HashSet<>();

set.add("apple");
set.add("orange");
set.add("banana");

System.out.println("set: " + set); // 输出: set: [banana, orange, apple]

set.remove("orange");

System.out.println("set: " + set); // 输出: set: [banana, apple]

System.out.println("set.contains('banana'): " + set.contains("banana")); // 输出: set.contains('banana'): true

System.out.println("set.isEmpty(): " + set.isEmpty()); // 输出: set.isEmpty(): false

set.clear();

System.out.println("set.isEmpty(): " + set.isEmpty()); // 输出: set.isEmpty(): true

总结

Java HashSet提供了对集合的高效操作方法,适用于需要快速存储、查询和删除元素的场景。值得一提的是,HashSet对元素查询的速度可能会随着元素的数量增加而变慢,因为查询是在整个集合中进行的。因此,如果需要更快的查询速度,则可以使用Java的TreeSet类。