要进行排序的实体类,该实体类按照birthDay属性进行排序。
注意birthDay为String类型。
public class User2 {
private String username;
private String birthDate;
public User2() {
}
public User2(String username, String birthDate) {
super();
this.username = username;
this.birthDate = birthDate;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getBirthDate() {
return birthDate;
}
public void setBirthDate(String birthDate) {
this.birthDate = birthDate;
}
}
实现一个Comparator接口。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Comparator;
import java.util.Date;
public class User2Comparator implements Comparator<User2> {
public int compare(User2 o1, User2 o2) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date o1Date = new Date();
Date o2Date = new Date();
try {
o1Date = df.parse(o1.getBirthDate());
o2Date = df.parse(o2.getBirthDate());
} catch (ParseException e) {
e.printStackTrace();
}
return o1Date.compareTo(o2Date);
}
}
测试效果。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.junit.Test;
import com.boco.myeat.model.User2;
import com.boco.myeat.model.User2Comparator;
public class DateTest {
@Test
public void testDate(){
List<User2> users = new ArrayList<User2>();
User2 u1 = new User2("zhang", "1986-01-11 12:10:10");
User2 u2 = new User2("wang", "1987-01-02 15:20:34");
User2 u3 = new User2("li", "1984-01-02 15:20:34");
users.add(u1);
users.add(u2);
users.add(u3);
for(User2 u : users){
System.out.println(u.getUsername());
}
System.out.println("=============");
Collections.sort(users, new User2Comparator());
Collections.reverse(users);
for(User2 u : users){
System.out.println(u.getUsername());
}
}
}