import java.util.*;
/*
|--Set:它对元素的存取是无序的。不可以存入重复元素。
|--HashSet:底层数据结构是哈希表。对于判断该集合元素是否重复,
通过hashCode方法,equals方法方法来保证元素的唯一性。
先会判断两个对象hashCode值,只有哈希值相同的情况下,才会判断equals方法。
不同步的。
*/
class HashSetDemo
{
public static void main(String[] args)
{
HashSet hs = new HashSet();
hs.add(new Student("zhangsan",30));
hs.add(new Student("lisi",34));
hs.add(new Student("wangwu",22));
hs.add(new Student("zhaoliu",32));
hs.add(new Student("zhangsan",30));
Iterator it = hs.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
class Student
{
private String name;
private int age;
Student(String name,int age)
{
this.name = name;
this.age = age;
}
/*public int hashCode()
{
System.out.println(this+"----hashCode");
return this.name.hashCode()+age*38;
//return 1;
}
public boolean equals(Object obj)
{
System.out.println(this+"----equals");
Student s = (Student)obj;
/*
if(this.name.equals(s.name) && this.age==s.age))
return true;
return false;
*/
/*return this.name.equals(s.name) && this.age==s.age;
}
public String toString()
{
return name+":"+age;
}
*/
}
|
|