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