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); }
}