HashSet 是基于 HashMap 来实现的,是一个不允许有重复元素的集合:
HashSet是无序的,不会记录插入的顺序
HashSet允许有null值
HashSet是线程不安全的,如果说多个线程同时对HashSet进行修改,那么最终结果是不确定的
以下HashSet的类图:
语法
HashSet<String> company = new HashSet<String>();
添加元素
public static void main(String[] args) {
HashSet<String> company = new HashSet<String>();
company.add("Tencent");
company.add("Ali");
company.add("Google");
company.add("Google");
company.add("Google");
System.out.println("重复的元素不会添加" + company);
}
运行结果如下:
重复的元素不会添加[Google, Tencent, Ali]
判断元素是否存在
public static void main(String[] args) {
HashSet<String> company = new HashSet<String>();
company.add("Tencent");
company.add("Ali");
company.add("Google");
company.add("Google");
company.add("Google");
//System.out.println("重复的元素不会添加" + company);
//判断元素是否包含在 company 集合中
System.out.println(company.contains("Ali"));
}
运行结果:
true
删除元素
public static void main(String[] args) {
HashSet<String> company = new HashSet<String>();
company.add("Tencent");
company.add("Ali");
company.add("Google");
company.add("Google");
company.add("Google");
//System.out.println("重复的元素不会添加" + company);
//判断元素是否包含在 company 集合中
//System.out.println(company.contains("Ali"));
//移除元素
company.remove("Google");
System.out.println("移除之后的结果" + company);
}
运行之后的结果:
移除之后的结果[Tencent, Ali]
public static void main(String[] args) {
HashSet<String> company = new HashSet<String>();
company.add("Tencent");
company.add("Ali");
company.add("Google");
company.add("Google");
company.add("Google");
//System.out.println("重复的元素不会添加" + company);
//判断元素是否包含在 company 集合中
//System.out.println(company.contains("Ali"));
//移除元素
company.remove("Google");
//System.out.println("移除之后的结果" + company);
System.out.println("数组大小结果为:" + company.size());
}
运行结果:
数组大小结果为:2