//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());
}
}