JAVA里List集合中的对象根据对象的某个属性值降序或者升序排序
创建资源类
@Data
@AllArgsConstructor
class Persons{
private Integer id;
private String name;
}
方式1
根据字段降序排序属性排序
List<Persons> list1 = new ArrayList<>();
List<Persons> list2 = new ArrayList<>();
list1.add(new Persons(1,"A"));
list1.add(new Persons(7,"B"));
list2.add(new Persons(3,"C"));
list2.add(new Persons(2,"D"));
list1.addAll(list2);
System.out.println(list1);
list1.sort(Comparator.comparing(Persons::getId).reversed());
输出:

方式2
自定义排序匿名内部类
Collections.sort(list1, new Comparator<Persons>() {
@Override
public int compare(Persons u1, Persons u2) {
return -(u1.getId() -u2.getId());
}});
System.out.println(list1);
输出:
[Persons(id=7, name=B), Persons(id=3, name=C), Persons(id=2, name=D), Persons(id=1, name=A)]
方式3
可以实现一个Comparable接口重写compareTo (不推荐,不灵活)
blog.csdn.net/zolalad/article/deta...
本作品采用《CC 协议》,转载必须注明作者和本文链接