[quote]
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
public class User implements Comparable {
private Integer userid;
// 年龄
private Integer age;
// 注册日期
private Date regDate;
public User(Integer userid, Integer age, Date regDate) {
this.userid=userid;
this.age=age;
this.regDate=regDate;
}
/**
* 1 :首先,把age=30的拿出来,先排序,regDate大的排序在前面 2 :然后,排序age!=30的,regDate大的排序在前面
*/
@Override
public int compareTo(User o) {
if (this.age == 30 && o.age == 30) {
return o.regDate.compareTo( this.regDate);
} else if (this.age == 30) {
return -1;
} else if (o.age == 30) {
return 1;
} else {
return o.regDate.compareTo(this.regDate);
}
}
@Override
public String toString() {
return this.userid+" "+this.age+" ";
}
public static void main(String[] args) throws ParseException {
/*
* 1 20 2013-01-21 2 30 2013-04-25 3 19 2013-11-14 4 55 2013-03-16 5 30
* 2013-02-20
*/
ArrayList<User> list = new ArrayList<User>();
DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
User u1 = new User(1, 20, format1.parse("2013-01-21"));
User u2 = new User(2, 30, format1.parse("2013-04-25"));
User u3 = new User(3, 19, format1.parse("2013-11-14"));
User u4 = new User(4, 55, format1.parse("2013-03-16"));
User u5 = new User(5, 30, format1.parse("2013-02-20"));
list.add(u1);
list.add(u2);
list.add(u3);
list.add(u4);
list.add(u5);
System.out.println(list);
Collections.sort(list);
System.out.println(list);
}
}
[/quote]