让HashSet的实例化对象有序,应该需要先将存入对象的hashCode值设置为一样的,然后就可以了。
- import java.util.*;
- class Person{
- private String name;
- private int age;
- Person(String name,int age){
- this.name=name;
- this.age=age;
- }
- public int hashCode(){
- return 12;
- }
- public boolean equals(Object obj){
- Person p=(Person)obj;
- return this.name.equals(p.name)&&this.age==p.age;
- }
- public String toString(){
- return name;
- }
- }
- public class Sunday{
- public static void main(String[] args) {
- HashSet<Person> hs=new HashSet<Person>();
- hs.add(new Person("aa",10));
- //hs.add(new Person("bb",25)); //通过这句代码的位置,可以看出来,hs有序。
- hs.add(new Person("zz",50));
- hs.add(new Person("bb",25));
- for(Iterator it=hs.iterator();it.hasNext();){
- System.out.println(it.next());
- }
- }
- }
复制代码
|