HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
HashSet 允许有 null 值。
HashSet 是无序的,即不会记录插入的顺序。
HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
HashSet 实现了 Set 接口。
1.构造
HashSet<String> hashset=new HashSet(); //泛型也可以不写
2.基本操作
hashset.add("abc");
hashset.clear(); //清空。
hashset.remove(Object o); //如果指定元素存在于此 set 中,则将其移除。
hashset.isEmpty() // 判空
hashset.contains(Object o) //如果此 set 包含指定元素,则返回 true。
hashset.size() // 返回此 set 中的元素的数量(set 的容量)。
System.out.println(hashset); //输出
3.遍历
for (String s:set) { System.out.println(s); }
通过迭代器遍历
Iterator iterator = set.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }
4.将指定集合元素全部放入hashset
public HashSet?(Collection<? extends E> c) 构造一个包含指定集合中元素的新集合。 HashMap使用默认加载因子(0.75)创建,初始容量足以包含指定集合中的元素。
List<Integer> a=new ArrayList<>();
a.add(1);
a.add(2);
HashSet<Integer> hashset=new HashSet<Integer>(a); //a中元素为{1,2}
原文:https://www.cnblogs.com/liuyixuan/p/14388277.html