Set:元素是无序的(存入和取出的顺序不一定一致),元素不可以重复
Set集合的功能和Collection是一致的,
HashSet:底层数据结构是哈希表
通过元素的两个方法判断是否相同:
1.hashCode();
2.equals();
注意:
对于判断元素是否存在,以及删除等操作,都依赖元素的hashCode和equals方法
Set集合的功能和Collection是一致的,
HashSet:底层数据结构是哈希表
通过元素的两个方法判断是否相同:
1.hashCode();
2.equals();
注意:
对于判断元素是否存在,以及删除等操作,都依赖元素的hashCode和equals方法
class Person
{
private String name;
private int age;
public int hashCode()
{
System.out.println(this.name+"-----获取hashCode");
return name.hashCode()+age;
}
public boolean equals(Object obj)
{
if(!(obj instanceof Person))
return false;
Person p = (Person)obj;
System.out.println(this.name+"---比较----"+p.name);
return this.name.equals(p.name)&&this.age==p.age;
}
}
public class HasSetDemo {
public static void main(String[] args) {
HashSet hs = new HashSet();
hs.add(new Person("aa",11));
hs.add(new Person("bb",22));
hs.add(new Person("cc",33));
hs.add(new Person("aa",11));
for(Iterator it = new hs.iterator ; it.hasNext() ;)
sop(it.next());
}
}