【Stream流】使用Stream流对字符串时间做排序
前言: 废话不多说,直接上代码
package com.goodstudy.other.test;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class StreamSortedTest {
/**
* stream流对字符串时间集合(按时间倒序)排序
*/
public static void main(String[] args) {
List<User> list=new ArrayList<User>();
User user = new User();
user.setUserId("1001");
user.setCreateDateStr("2024/12/11 12:15:50");
User user2 = new User();
user2.setUserId("1011");
user2.setCreateDateStr("2023/01/11 16:15:50");
User user3 = new User();
user3.setUserId("1021");
user3.setCreateDateStr("2022/12/30 09:15:50");
list.add(user);
list.add(user2);
list.add(user3);
list=list.stream().sorted(Comparator.comparing(User::getCreateDateStr).reversed()).collect(Collectors.toList());
System.out.println(JSON.toJSON(list));
}
public static class User{
private String userId;
private String createDateStr;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getCreateDateStr() {
return createDateStr;
}
public void setCreateDateStr(String createDateStr) {
this.createDateStr = createDateStr;
}
}
}
备注:
.reversed() 指倒序排序,没有添加这个,默认升序
控制台打印结果:
[{"createDateStr":"2024/12/11 12:15:50","userId":"1001"},{"createDateStr":"2023/01/11 16:15:50","userId":"1011"},{"createDateStr":"2022/12/30 09:15:50","userId":"1021"}]