工作中,有时会需要对集合内的元素进行排序。利用Java8可以很方便的对List内的元素进行排序操作~
基础类型List排序
1 2 3 4 5 6 7
| List<Integer> nums = Arrays.asList(3,1,5,2,9,8,4,10,6,7); nums.sort(Comparator.reverseOrder()); System.err.println("倒序:"+nums);
nums.sort(Comparator.naturalOrder()); System.err.println("正序:"+nums);
|
执行结果:
对象List单属性排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| List<Developer> listDevs = ComparatorTest.getDevelopers();
System.out.println("排序前:");
listDevs.forEach((developer)->System.out.println(developer));
Collections.sort(listDevs, new Comparator<Developer>() { @Override public int compare(Developer o1, Developer o2) { return o1.getAge().compareTo(o2.getAge()); } });
Comparator<Developer> ageComparator = (o1, o2)->o1.getAge().compareTo(o2.getAge()); listDevs.sort(ageComparator); listDevs.sort(ageComparator.reversed());
System.out.println("排序后:");
listDevs.forEach((developer)->System.out.println(developer));
|
执行结果:
对象List多属性排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
listDevs.sort(Comparator.comparing(Developer::getAge).thenComparing(Developer::getSalary));
|
执行结果: