32. Java HashSet
HashSet是基于HashMap来实现的,是一个不允许有重复元素的集合.
HashSet允许有null值,HashSet是无序的,不会记录插入的顺序.
HashSet不是线程安全的, 如果多个线程尝试同时修改HashSet, 则最终结果是不确定的, 必须在多线程访问时,显式同步对HashSet的并发访问.
HashSet实现了Set接口.

HashSet的元素实际上是对象,一些常见的基本类型可以使用它的包装类.
| 基本类型 | 引用类型 |
|---|---|
| boolean | Boolean |
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
HashSet位于java.util包中, 使用前需要引入它, 语法格式如下:
import java.util.HashSet;
示例:创建一个HashSet对象,保存字符串元素
HashSet<String> sites = new HashSet<String>();
添加元素
HashSet类提供了很多有用的方法,添加元素可以使用add方法,重复的元素不会被添加
import java.util.HashSet;
public static void main(){
pulic static void main(String[] args){
HashSet<String> sites = new HashSet<String>();
sites.add("Google");
}
}
判断元素是否存在
使用contains()方法判断元素是否存在于集合当中,返回布尔值
import java.util.HashSet;
public static void main(){
pulic static void main(String[] args){
HashSet<String> sites = new HashSet<String>();
sites.add("Google");
System.out.println(sites.contains("Google"));
}
}
删除元素
使用remove()方法来删除集合中的元素,删除成功返回true,否则返回false
sites.remove("Taobao");
删除集合中的所有元素可以使用clear方法
sites.clear();
计算大小
使用size()方法计算HashSet中元素的数量
sites.size();
迭代HashSet
使用for-each迭代
for(String i : sites){
System.out.println(i);
}