前言:
在项目开发中往往会遇到各种数据需要排序展示在页面上,常见的从数据库查使用数据库的排序,还有一种就是使用我们的开发语言进行排序,这里给大家演示使用java8的新特性进行排序,众所周知java8带来了函数式编程和Lambda表达式等新特性,下面我们就开始演示了:
一:单元测试方法的前后处理,省的写那么多代码,我就使用前后处理给抽出来了
private List<Integer> list = new ArrayList<>();@Beforepublic void fun() {System.out.println("排序前");list = new ArrayList<>();for (int i = 0; i < 10; i++) {list.add((int) (Math.random() * 100));System.out.print(list.get(i) + "\t");}System.out.println();}@Afterpublic void fun2() {System.out.println("排序后------");for (Integer integer : list) {System.out.print(integer + "\t");}}
二:好了做完了前后处理,那么开始我们的排序,先使用传统的方式
@Testpublic void fun1() {list.sort(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1 - o2;}});}
测试结果如下图:
三:使用函数式进行排序(新特性)
import java.util.Comparator;public class MyComparator implements Comparator<Integer> {@Overridepublic int compare(Integer a, Integer b) {return b - a;}}
/*** 使用函数式编程,传递代码*/@Testpublic void fun4() {list.sort(new MyComparator());}
测试结果:
四:采用Lambda表达式进行排序
/*** 采用Lambda表达式进行排序*/@Testpublic void fun3() {list.sort((a, b) -> a - b);}
测试结果如下:
注意:排序规则可以自己定义,根据业务需求来定义,这次就不写了下次更新写自定义规则排序