通过Collections实现排序

来源:互联网 发布:cs1.6 for mac 10.11 编辑:程序博客网 时间:2024/04/29 08:08

要进行排序的实体类,该实体类按照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 {@Testpublic 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());}}}