HashSet:Set 接口的实现类,存放无序的,不可重复的元素
判断是否为重复的对象
- 比较hashCode()方法的返回值,如果不同,判定为不同的对象,如果相同,执行第二步
- 判断equals()方法的返回值,如果为true,则判为相同的对象,如果为false,则为不同的对象
public class HashSetTest {
public static void main(String[] args) {
//创建一个空的集
HashSet hs = new HashSet();
//增加
hs.add("hello"); //如果集中不存在该元素,则添加该元素
hs.add(new String("hello")); //重复的元素(依据equals比较)无法添加
hs.add(123);
hs.add(null);
hs.add(new Object());
Object obj = new Object();
hs.add(obj);
hs.add(true);
//添加学生
hs.add(new Student(1001,"张三"));
hs.add(new Student(1001,"张三")); //重复的对象,通过重写了类中的hashCode()和equals()
//删除
hs.remove("hello"); //删除指定的元素
hs.remove(obj);
//遍历的两种方式
System.out.println("--简洁for循环--");
for(Object o:hs){
System.out.println(o);
}
System.out.println("--集合专用的迭代器--");
Iterator it = hs.iterator();
while(it.hasNext()){
Object o = it.next();
System.out.println(o);
it.remove(); //删除迭代出来的元素必须通过迭代器的方法
}
//测试是否为空
System.out.println("集是否空?"+hs.isEmpty());
//输出集
System.out.println(hs);
}
}