package cn.ls.testlist;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
*
*根据Person中age和name进行排序。
*/
public class TestList {
public static void main(String[] args) {
List<Person> list = new ArrayList<Person>();
for (int i=0; i<10; i++){
Person p = new Person();
p.setAge(i);
p.setName(i+"name");
list.add(p);
}
list.add(new Person(1,"1name"));
list.add(new Person(0,"1name"));
Collections.sort(list, new Comparator(){
public int compare(Object o1, Object o2) {
Person p1 = (Person) o1;
Person p2 = (Person) o2;
//先根据age进行排序,然后在根据name排序。
int flag = p1.getAge().compareTo(p2.getAge());
if (flag ==0){//说明年龄相等。
flag = p1.getName().compareTo(p2.getName());
}
return flag;
}
});
for (Person p: list){
System.out.println(p.toString());
}
}
}
package cn.ls.testlist;
public class Person {
private Integer age;
private String name;
private String sex;
public Person(Integer age, String name) {
super();
this.age = age;
this.name = name;
}
public Person() {
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "age:"+age+" name:"+name;
}
}
结果如下:
age:0 name:0name
age:0 name:1name
age:1 name:1name
age:1 name:1name
age:2 name:2name
age:3 name:3name
age:4 name:4name
age:5 name:5name
age:6 name:6name
age:7 name:7name
age:8 name:8name
age:9 name:9name