首页 > 技术文章 > 对List中每个对象元素按时间顺序排序

hunterCecil 原文

需求: 需要对List中的每个User按照birthday顺序排序,时间由小到大排列。

 代码实现:

 1 import java.text.SimpleDateFormat;
 2 import java.util.*;
 3 
 4 public class ListSort {
 5     public static class UserBean {
 6         private String id;
 7         private String birthday;
 8 
 9         public String getId() {
10             return id;
11         }
12 
13         public void setId(String id) {
14             this.id = id;
15         }
16 
17         public String getBirthday() {
18             return birthday;
19         }
20 
21         public void setBirthday(String birthday) {
22             this.birthday = birthday;
23         }
24     }
25 
26     public static void main(String[] args) {
27         List<UserBean> list = new ArrayList<UserBean>();
28         UserListGenerate(list);
29         System.out.println("********排序前*******");
       for(UserBean user: list){
        System.out.println(user.getBirthday());  
       }
30 31 ListSort(list); 32 System.out.println("******排序后*****");
       for(UserBean user: list){
        System.out.println(user.getBirthday());
       }
33 } 34 35 private static void UserListGenerate(List<UserBean> list) { 36 UserBean user1 = new UserBean(); 37 UserBean user2 = new UserBean(); 38 UserBean user3 = new UserBean(); 39 user1.setId("zhagnsan"); 40 user1.setBirthday("1980-11-01"); 41 42 user2.setId("lisi"); 43 user2.setBirthday("1981-12-01"); 44 45 user3.setId("wangwu"); 46 user3.setBirthday("1980-12-01"); 47 48 list.add(user1); 49 list.add(user2); 50 list.add(user3); 51 } 52 53 private static void ListSort(List<UserBean> list) { 54 Collections.sort(list, new Comparator<UserBean>() { 55 @Override 56 public int compare(UserBean o1, UserBean o2) { 57 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 58 try { 59 Date dt1 = format.parse(o1.getBirthday()); 60 Date dt2 = format.parse(o2.getBirthday()); 61 if (dt1.getTime() > dt2.getTime()) { 62 return 1; 63 } else if (dt1.getTime() < dt2.getTime()) { 64 return -1; 65 } else { 66 return 0; 67 } 68 } catch (Exception e) { 69 e.printStackTrace(); 70 } 71 return 0; 72 } 73 }); 74 } 75 }

推荐阅读