0
点赞
收藏
分享

微信扫一扫

list集合根据某字段进行排序

1、Collections.sort()

//升序排列

Collections.sort(list, new Comparator<Student>() {

   public int compare(Student s1, Student s2) {

       return s1.getAge().compareTo(s2.getAge());

   }

});

1

2

3

4

5

6

//降序排列

Collections.sort(list, new Comparator<Student>() {

   public int compare(Student s1, Student s2) {

       return s2.getAge().compareTo(s1.getAge());

   }

});

1

2

3

4

5

6

//多条件-先年龄升序、后分数升序

Collections.sort(list, new Comparator<Student>() {

   public int compare(Student s1, Student s2) {

       int i = s1.getAge().compareTo(s2.getAge());

       if(i == 0) {

           i = s1.getScore().compareTo(s2.getScore());

       }

       return i;

   }

});

1

2

3

4

5

6

7

8

9

10

//如日期集合List<Date> list = new ArrayList<>();

Collections.sort(list, new Comparator<Date>() {

   public int compare(Date s1, Date s2) {

       return s1.compareTo(s2);

   }

});

1

2

3

4

5

6

java8可使用

2、list.sort()

//升序排列

list.sort((x,y)->Integer.compare(x.getAge(), y.getAge()));

//降序排列

list.sort((x,y)->Integer.compare(y.getAge(), x.getAge()));

//如日期集合List<Date> list = new ArrayList<>();

list.sort((x,y)->x.compareTo(y));

1

2

3

4

5

6

3、list.stream()

//升序排列

list = list.stream().sorted(Comparator.comparing(Student::getAge)).collect(Collectors.toList());

list = list.stream().sorted(Comparator.comparingInt(Student::getAge)).collect(Collectors.toList());

//使用lambda表达式

list = list.stream().sorted(Comparator.comparing(e -> e.getAge())).collect(Collectors.toList());

//降序排列

list = list.stream().sorted(Comparator.comparing(Student::getAge).reversed()).collect(Collectors.toList());

//多条件-先年龄升序、后分数升序

list = list.stream().sorted(Comparator.comparing(Student::getAge).thenComparing(Comparator.comparing(Student::getScore))).collect(Collectors.toList());

1

2

3

4

5

6

7

8

9



举报

相关推荐

0 条评论