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类。