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());
输出:

![JAVA里List集合中的对象根据对象的某个属性值降序或者升序排序](https://cdn.learnku.com/uploads/images/202202/10/55807/ljTJN1x0hm.png!large)

方式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 (不推荐,不灵活)

JAVA里List集合中的对象根据对象的某个属性值降序或者升序排序

blog.csdn.net/zolalad/article/deta...

本作品采用《CC 协议》,转载必须注明作者和本文链接
MissYou123
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!