本帖最后由 李成航 于 2012-3-15 15:51 编辑
如果我重写hashCode()方法,并让他返回同一个整数值,那此时的hash集合将如何排序?如下例子:
class Student {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(int a){this.age=a;}
public int hashCode(){return 9;}//始终返回同一个整数9
}
public class Test{
public static void main(String[] args){
HashSet hs=new HashSet();
hs.add(new Student(4));
hs.add(new Student(1));
hs.add(new Student(2));
hs.add(new Student(3));
hs.add(new Student(3));
Iterator it=hs.iterator();
while(it.hasNext()){
System.out.println(((Student)it.next()).getAge());//此时输出顺序是按什么排序的?
}
}
}
不知它是按什么排序的?因为此时每个对象的hash码重写后的返回值是相同的.
|