Stream流对集合先按某个字段升序排列再按某个字段降序排列
直接上代码
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
//学生id
private Integer userId;
//学生姓名
private String status;
//学生年龄
private Integer age;
//学生班级
private Integer classNo;
}
public class Test4 {
public static void main(String[] args) {
List<User> userList = new ArrayList<>();
userList.add(new User(1, "close", 20, 1));
userList.add(new User(2, "close", 18, 2));
userList.add(new User(3, "open", 20, 1));
userList.add(new User(4, "close", 19, 1));
userList.add(new User(5, "open", 17, 1));
userList.add(new User(6, "open", 16, 1));
userList.add(new User(7, "open", 18, 1));
userList.add(new User(8, "open", 19, 2));
userList.add(new User(9, "open", 21, 2));
userList = userList.stream().sorted(Comparator.comparing(User::getStatus).thenComparing(User::getAge).reversed()).collect(Collectors.toList());
for (User user : userList) {
System.out.println(user);
}
}
}
如上,先按照status升序 ,再按照age降序


浙公网安备 33010602011771号