HashSet 去除重复元素,姓名和年龄相同视为同一人

//App

package source.com.compare;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;

public class App {

    /**
     * @param args
     */
    public static void main(String[] args) {
                 /*HashSet<Student> tr=new HashSet<Student>();
                 tr.add(new Student("aa",11));
                 tr.add(new Student("aa",11));
                 tr.add(new Student("aa",22));
                 tr.add(new Student("aa",22));
                 tr.add(new Student("aa",22));
                 Iterator<Student> it=tr.iterator();
                 while(it.hasNext()){
                    Student s= it.next();
                    System.out.println(s);
                 } */

        /*TreeMap<String,Person> tr=new TreeMap<String,Person>();
         tr.put("aa",new Person("aa",11221));
         tr.put("aa",new Person("aa",13311));
         tr.put("aa",new Person("aa",116661));
         
         Set<Entry<String, Person>>en=tr.entrySet();
         Iterator<Entry<String, Person>> it= en.iterator();
         while(it.hasNext()){
                     Entry<String, Person> e=     it.next();
                    String key= e.getKey();
                    Person p=e.getValue();
                    System.out.println(key +"-----"+p.toString());
         }
        */
        
        List<Student> tr=new ArrayList<Student>();
         tr.add(new Student("aa",11));
         tr.add(new Student("aa",11));
         tr.add(new Student("aa",22));
         tr.add(new Student("aa",22));
         tr.add(new Student("aa",22));
         Iterator<Student> it=tr.iterator();
         while(it.hasNext()){
            Student s= it.next();
            System.out.println(s);
         } 
        
        
    }

}
//类MyCom

package source.com.compare;

import java.util.Comparator;

public class MyCom implements Comparator<Person> {

    @Override
    public int compare(Person s1, Person s2) {
         int a=s2.getAge()-s1.getAge();
        return a!=0?a:s1.getName().compareTo(s2.getName());
    }
 

}
//类Person

package source.com.compare;

public class Person {

    private String name;
    private int age;
    public Person(){}
    public Person(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }
    
    
    @Override
    public int hashCode() {
         return name.hashCode()+age*27;
    }
    @Override
    public boolean equals(Object obj) {
        Person p=(Person) obj;
        return this.getAge()==p.getAge()&&this.getName().equals(p.getName());
    }
    
 
}
//类Student

package source.com.compare;

public class Student implements Comparable{

    private String name;
    private int age;
    public Student(){}
    public Student(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
    @Override
    public String toString() {
        return "Student [name=" + name + ", age=" + age + "]";
    }
    @Override
    public int compareTo(Object obj) {
        Student s=(Student) obj;
        int a=this.age-s.age;
        return a!=0?a:this.name.compareTo(s.name);
    }
    
    @Override
    public int hashCode() {
         return name.hashCode()+age;
     
    } 
    @Override
    public boolean equals(Object obj) {
        Student s=(Student) obj;
        return this.getAge()==s.getAge()&&this.getName().equals(s.getName());
    } 

}
 

猜你喜欢

转载自blog.csdn.net/wwqqyy123456/article/details/82109950