对List 集合中元素进行排序

 1     /**
 2      * 共通排序
 3      */
 4     public List<BarrageMessageVO> commonSort(String sort, List<BarrageMessageVO> list) {
 5         String sorting = StringUtils.isBlank(sort) ? "updatetime" : sort.toLowerCase();
 6         if (sorting.contains("createtime asc")) {
 7             //按照创建时间升序排序
 8             list.sort(BarrageMessageVO::compareToCreateTime);
 9         } else if (sorting.contains("createtime desc")) {
10             //按照创建时间降序排序
11             list.sort(BarrageMessageVO::compareToCreateTimeDesc);
12         } else if (sorting.contains("updatetime desc")) {
13             //按照更新降序排序
14             list.sort(BarrageMessageVO::compareToUpdateTimeDesc);
15         } else {
16             //按照更新升序排序
17             list.sort(BarrageMessageVO::compareToUpdateTime);
18         }
19         return list;
20     }
21 
22 /**
23      * 按照创建时间升序排序
24      * yyyy-MM-dd HH:mm:ss
25      * @param another
26      * @return
27      */
28     public int compareToCreateTime(BarrageMessageVO another) {
29         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
30         Date createTime1 = null;
31         Date createTime2 = null;
32         try {
33             createTime1 = sdf.parse(this.createTime);
34             createTime2 = sdf.parse(another.createTime);
35         } catch (ParseException e) {
36             // ignore
37         }
38         return createTime1.compareTo(createTime2);
39     }
40 
41     /**
42      * 按照创建时间降序排序
43      * yyyy-MM-dd HH:mm:ss
44      * @param another
45      * @return
46      */
47     public int compareToCreateTimeDesc(BarrageMessageVO another) {
48         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
49         Date createTime1 = null;
50         Date createTime2 = null;
51         try {
52             createTime1 = sdf.parse(this.createTime);
53             createTime2 = sdf.parse(another.createTime);
54         } catch (ParseException e) {
55             // ignore
56         }
57         return createTime2.compareTo(createTime1);
58     }
59 
60     /**
61      * 按照更新升序排序
62      * yyyy-MM-dd HH:mm:ss
63      * @param another
64      * @return
65      */
66     public int compareToUpdateTime(BarrageMessageVO another) {
67         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
68         Date updateTime1 = null;
69         Date updateTime2 = null;
70         try {
71             updateTime1 = sdf.parse(this.updateTime);
72             updateTime2 = sdf.parse(another.updateTime);
73         } catch (ParseException e) {
74             // ignore
75         }
76         return updateTime1.compareTo(updateTime2);
77     }
78 
79     /**
80      * 按照更新降序排序
81      * yyyy-MM-dd HH:mm:ss
82      * @param another
83      * @return
84      */
85     public int compareToUpdateTimeDesc(BarrageMessageVO another) {
86         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
87         Date updateTime1 = null;
88         Date updateTime2 = null;
89         try {
90             updateTime1 = sdf.parse(this.updateTime);
91             updateTime2 = sdf.parse(another.updateTime);
92         } catch (ParseException e) {
93             // ignore
94         }
95         return updateTime2.compareTo(updateTime1);
96     }
原文地址:https://www.cnblogs.com/ming-blogs/p/13935282.html