对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 }