package com.eerdc.diy.service.impl;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import org.testng.collections.CollectionUtils;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
List<User> userList = new ArrayList<>();
User user = new User();
user.setName("zzz");
user.setAge(12);
user.setSelected(false);
User user1 = new User();
user1.setName("aaa");
user1.setAge(14);
user1.setSelected(true);
User user2 = new User();
user2.setName("www");
user2.setAge(8);
user2.setSelected(false);
userList.add(user);
userList.add(user1);
userList.add(user2);
//按boolean反排序,按年龄正序 userList.sort(Comparator.comparing(User::isSelected).reversed().thenComparing(User::getAge));
userList.stream().forEach(a -> a.setNoList(new ArrayList<>()));
userList.forEach(System.out::println);
System.out.println(JSONObject.toJSONString(userList));
//按boolean反排序,按年龄反排序
List<User> userList2 = userList.stream()
.sorted(Comparator.comparing(User::isSelected).reversed()
.thenComparing(Comparator.comparing(User::getAge).reversed()))
.collect(Collectors.toList());
userList2.forEach(System.out::println);
}
}
@Data
class User {
private List<String> noList;
private String name;
private Integer age;
private boolean isSelected;
}
结果
User(noList=[], name=aaa, age=14, isSelected=true)
User(noList=[], name=www, age=8, isSelected=false)
User(noList=[], name=zzz, age=12, isSelected=false)
[{“age”:14,“name”:“aaa”,“noList”:[],“selected”:true},{“age”:8,“name”:“www”,“noList”:[],“selected”:false},{“age”:12,“name”:“zzz”,“noList”:[],“selected”:false}]
User(noList=[], name=aaa, age=14, isSelected=true)
User(noList=[], name=zzz, age=12, isSelected=false)
User(noList=[], name=www, age=8, isSelected=false)