HashSet基于HashMap来实现的,是一个不允许有重复元素的集合。
HashSet允许有null值。它是无序的,即不会记录插入的顺序。它也不是线程安全,如果多个线程同时修改HashSet,则最终结果是不确定的。所以必须在多线程访问时显式同步对HashSet的并发访问。
HashSet类位于java.util包中,使用前需要引入它,语法格式如下:
import java.util.HashSet;//引入HashSet类
HashSet的创建及常用操作如下:
//引入HashSet类
import java.util.HashSet;
public class Test{
public static void main(String[] args){
//创建sites对象,用于保存字符串元素
HashSet<String> sites = new HashSet<String>();
//add()方法添加元素
sites.add("red");
sites.add("blue");
sites.add("green");
sites.add("yellow");
sites.add("red"); //元素重复,不会被添加,集合中元素是唯一的
System.out.println(sites);
//contains()方法判断元素是否在集合中
System.out.println(sites.contains("red");
//remove()方法删除集合中的元素
sites.remove("red");
System.out.println(sites);
//删除集合中所有元素可以使用clear()方法
sites.clear();
System.out.println(sites);
//后续还要操作,重新添加元素
//add()方法添加元素
sites.add("red");
sites.add("blue");
sites.add("green");
sites.add("yellow");
//size()方法获取集合中元素数量
System.out.println(sites.size());
//迭代HashSet
for(String i : sites){
System.out.println(i);
}
}
}
HashSet应用场景非常广泛,比如利用HashSet解决无重复字符的最长字串问题。