package com.bjsxt;
//可发现:获取到的元素的顺序和插入顺序无关且不含有重复元素!!!!
//hashset 无序(添加元素并不是按先后顺序存放,但也不是随机的,是对元素的哈希值进行计算决定
// 位置,不重复,线程不安全,允许含有null元素
import java.util.HashSet;
import java.util.Set;
public class HashsetTest {
public static void main(String[] args) {
//实例化
Set<String> set=new HashSet<>();
//添加元素
set.add("a");
set.add("b1");
set.add("c1");
set.add("d");
set.add("a");
//获取元素,在set容器中没有索引(下标),所以没有对应的get(int index)方法
for(String str:set){
System.out.println(str);
}//可发现:获取到的元素的顺序和插入顺序无关且不含有重复元素!!!!
//删除元素
System.out.println("---------");
boolean flag=set.remove("c1");
System.out.println(flag);
for(String str:set){
System.out.println(str);
}
int size=set.size();
System.out.println(size);
System.out.println("----------");
//实例化Hashset
Set<Users> set1=new HashSet<>();//创建一个users类型的Hashset set1
Users u=new Users("liu",18);
Users u1=new Users("liu",18);
set1.add(u);
set1.add(u1);
System.out.println(u.hashCode());//1324119927
System.out.println(u1.hashCode());//990368553
for ( Users users:set1){
System.out.println(users);
}
//Users{username='liu',userage=18}
// Users{username='liu',userage=18}
//发现虽然u和u1内容一样但是却hashcode值不一样,且都存入了
//所有这种情况想只存一个,要重写hashcode算法
}
}
总结:强循环格式:
for (数据类型 变量名:集合名){
(这里面是对取出来的集合的元素的任意操作)
}
如输出一个 类为Users的集合set中所有元素:
for ( Users users:set){
System.out.println(users);
}