Java8集合内对象按照多条件排序及取前几条

打印 上一主题 下一主题

主题 862|帖子 862|积分 2586

1,实例代码,注意(如果排序属性为字符串,必须要给其转换为数字类型,而后排序,否则排序不准)
  1. import lombok.Data;
  2. import java.util.Arrays;
  3. import java.util.Comparator;
  4. import java.util.List;
  5. import java.util.stream.Collectors;
  6. public class Test {
  7.     public static void main(String[] args) {
  8.         Person p1 = new Person("zhangsan", 11, "180");
  9.         Person p2 = new Person("lisi", 10, "190");
  10.         Person p3 = new Person("wangwu", 10, "160");
  11.         Person p5 = new Person("xiaozhang", 10, "170");
  12.         Person p4 = new Person("zhouliu", 9, "170");
  13.         List<Person> people = Arrays.asList(p1, p2, p3, p4,p5);
  14.         List<Person> ageSortList = people.stream().sorted(Comparator.comparing(Person::getAge)).collect(Collectors.toList());
  15.         ageSortList.stream().sorted(Comparator.comparing(Person::getAge)
  16.                 .thenComparing(Person::getTall, Comparator.reverseOrder()))
  17.                 .forEach(System.out::println);
  18.     }
  19.     @Data
  20.     static class Person {
  21.         private String name;
  22.         private Integer age;
  23.         private String tall;
  24.         public Person(String name, Integer age, String tall) {
  25.             this.name = name;
  26.             this.age = age;
  27.             this.tall = tall;
  28.         }
  29.     }
  30. }
复制代码
参考文章

Comparator 使用详解
  1. https://www.cnblogs.com/kuanglongblogs/p/11230250.html
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表