方法1;
public class Student {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student [age=" + age + ", name=" + name + "]";
}
public Student(int age, String name) {
super();
this.age = age;
this.name = name;
}
}
-------------------------
public static void main(String[] args) {
//Comparator--java.util
Set<Student> treeSet = new TreeSet<Student>(new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
// TODO Auto-generated method stub
return o1.getAge()-o2.getAge();
}
});
treeSet.add(new Student(18, "zhangsan"));
treeSet.add(new Student(35, "wangwu"));
treeSet.add(new Student(23, "lisi"));
for (Student student : treeSet) {
System.out.println(student.getAge()+"+"+student.getName());
}
}
方法二:
//Comparable--java.lang
public class Student implements Comparable<Student>{
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student [age=" + age + ", name=" + name + "]";
}
/**
* @param age
* @param name
*/
public Student(int age, String name) {
super();
this.age = age;
this.name = name;
}
/* (non-Javadoc)
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
@Override
public int compareTo(Student o) {
// TODO Auto-generated method stub
return this.age-o.age;
}
}
-------------------------------
public static void main(String[] args) {
Set<Student> set = new TreeSet<Student>();
set.add(new Student(18, "zhangsan"));
set.add(new Student(35, "wangwu"));
set.add(new Student(23, "lisi"));
for (Student student : set) {
System.out.println(student.getAge()+"+"+student.getName());
}
}
结果:18+zhangsan
23+lisi
35+wangwu