Java8 使用 stream().sorted()對List集合進行排序


public static void main(String[] args){
TGoodsInfo tGoodsInfo1 = new TGoodsInfo();
tGoodsInfo1.setExpendIntegral(0);//積分大小
tGoodsInfo1.setUpdatedTime(DateUtil.getHalfYearStartTime(new Date()));//時間
TGoodsInfo tGoodsInfo2 = new TGoodsInfo();
tGoodsInfo2.setExpendIntegral(3);
tGoodsInfo2.setUpdatedTime(new Date());
TGoodsInfo tGoodsInfo3 = new TGoodsInfo();
tGoodsInfo3.setExpendIntegral(3);
tGoodsInfo3.setUpdatedTime(DateUtil.getHalfYearEndTime(new Date()));
TGoodsInfo tGoodsInfo4 = new TGoodsInfo();
tGoodsInfo4.setExpendIntegral(4);
tGoodsInfo4.setUpdatedTime(DateUtil.getHalfYearEndTime(new Date()));
List<TGoodsInfo> result = new ArrayList <>();
result.add(tGoodsInfo4);
result.add(tGoodsInfo1);
result.add(tGoodsInfo2);
result.add(tGoodsInfo3);

  • 按照 積分和時間倒排序

result = result.stream().sorted(
Comparator.comparing(TGoodsInfo::getExpendIntegral).
thenComparing(TGoodsInfo::getUpdatedTime).reversed())
.collect(Collectors.toList());
for (TGoodsInfo tGoodsInfo : result) {
System.out.println(tGoodsInfo);
}

  • 按照 積分和時間正排序

result = result.stream().sorted(
Comparator.comparing(TGoodsInfo::getExpendIntegral).
thenComparing(TGoodsInfo::getUpdatedTime))
.collect(Collectors.toList());
for (TGoodsInfo tGoodsInfo : result) {
System.out.println(tGoodsInfo);
}

  • 按照 積分正排序和時間倒排序

result = result.stream().sorted(
Comparator.comparing(TGoodsInfo::getExpendIntegral).reversed().
thenComparing(TGoodsInfo::getUpdatedTime).reversed())
.collect(Collectors.toList());
for (TGoodsInfo tGoodsInfo : result) {
System.out.println(tGoodsInfo);
}

  • 按照 積分到排序和時間正排序

result = result.stream().sorted(
Comparator.comparing(TGoodsInfo::getExpendIntegral).reversed())
.collect(Collectors.toList());
for (TGoodsInfo tGoodsInfo : result) {
System.out.println(tGoodsInfo);
}

  • 按照積分到排序

result = result.stream().sorted(
Comparator.comparing(TGoodsInfo::getExpendIntegral).reversed())
.collect(Collectors.toList());
for (TGoodsInfo tGoodsInfo : result) {
System.out.println(tGoodsInfo);
}

  • 按照積分正排序

result = result.stream().sorted(
Comparator.comparing(TGoodsInfo::getExpendIntegral))
.collect(Collectors.toList());
for (TGoodsInfo tGoodsInfo : result) {
System.out.println(tGoodsInfo);
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM