构造方法
- HaseSet() //一个空的hashset
- HashSet(Collection<? extend E> c)//讲一个集合初始化为hashset
- HashSet(int n)//指定长度为n
- HashSet(int n, float factor) 指定长度和装载因子
方法
- add(E e) 添加元素
- clear() 清空hashset
- clone() 克隆一个副本并赋给一个新的变量
- contains(Object o) 是否包含某个元素
- isEmpty() 是否为空
- remove(Object o) 删除hashset元素
- size() 返回长度大小
- 还有一些继承自set 和collection 的方法,同时支持流处理,这里不再赘述
实践代码
public static void main(String[] args){
//构造方法
HashSet<String> h = new HashSet<>();//默认装载因子为0.75
HashSet<String> h1 = new HashSet<>(50);//默认装载因子为0.75
//HashSet<String> h2 = new HashSet<String>(50,0.7);//指定装载因子为0.75
LinkedList<String> a = new LinkedList<>();//默认长度为10
a.add("e");
a.add("g");
a.add("f");
HashSet<String> hs = new HashSet<String>();
hs.add("a");
hs.add("b");
hs.add("c");
HashSet<String> c = new HashSet<>(a);//可以将一个实现Collection接口的类初始化
System.out.println("默认构造函数长度:"+hs.size());
System.out.println("Collection初始化为HashSet:"+c);
hs.add("a1");//添加元素,若果有,则不添加,set是唯一性的
System.out.println("添加元素"+hs);
hs.addAll(c);//添加Collection元素
System.out.println("添加集合元素"+hs);
HashSet<String> d = (HashSet<String>)hs.clone();//克隆元素
System.out.println("clone后的结果:"+d);
d.clear();
System.out.println("clear后的结果:"+d);
System.out.println("是否包含某一个元素:"+hs.contains("a"));
System.out.println("判断是否为空:"+hs.isEmpty());
System.out.println("移除指定的元素:"+hs.remove("a"));//返回boolean
System.out.println(hs);
String[] bb = new String[hs.size()];
hs.toArray(bb);
System.out.println(Arrays.asList(bb));
// 循环迭代
for(String str: hs){
System.out.print(str+" ");
}
System.out.println();
//Iterator 迭代
Iterator it = hs.iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
System.out.println();
//forEach 迭代循环, java1.8中含有的
hs.forEach(show->{
System.out.print(show+" ");
});
System.out.println();
}
实践结果