Java 8中的list排序

2020-01-18  本文已影响0人  woods_deamon

核心部分的代码是TimSort()。归并排序


基础类型List排序

//对数字进行排序List nums = Arrays.asList(3,1,5,2,9,8,4,10,6,7);nums.sort(Comparator.reverseOrder());//reverseOrder倒序System.err.println("倒序:"+nums);nums.sort(Comparator.naturalOrder());//naturalOrder自然排序即:正序System.err.println("正序:"+nums);

对象List单属性排序

List listDevs = ComparatorTest.getDevelopers();System.out.println("排序前:");

//JAVA8的写法,循环listDevs.forEach((developer)->System.out.println(developer));

//第一个写法Collections.sort(listDevs,newComparator() {@Overridepublicintcompare(Developer o1, Developer o2){returno1.getAge().compareTo(o2.getAge());    }});

//第二个写法,JAVA8的写法,List 接口支持直接使用 sort 该方法,不再需要使用 Collections.sort 了//listDevs.sort(listDevs, new Comparator<Developer>() {

                   //  @Override

                           //  public int compare(Developer o1, Developer o2) {

                                   //      return o1.getAge().compareTo(o2.getAge();//  }//});

//第三个写法,Lambda写法,JAVA8的写法

//listDevs.sort((Developer o1, Developer o2)->o1.getAge().compareTo(o2.getAge()));

//第四个写法,Lambda写法,JAVA8的写法

//listDevs.sort((o1, o2)->o1.getAge().compareTo(o2.getAge()));

//第五写法,个Lambda写法,JAVA8的写法

//listDevs.sort(Comparator.comparing(Developer::getAge));

//第六写法,个Lambda写法,JAVA8的写法

Comparator ageComparator = (o1, o2)->o1.getAge().compareTo(o2.getAge());listDevs.sort(ageComparator);

//按上面配置的顺序取值listDevs.sort(ageComparator.reversed());

//按上面配置的顺序反向取值System.out.println("排序后:");

//JAVA8的写法,循环listDevs.forEach((developer)->System.out.println(developer));

执行结果:

上一篇 下一篇

猜你喜欢

热点阅读