使用Java8新特性對List進行排序
阿新 • • 發佈:2019-02-14
前言:
在專案開發中往往會遇到各種資料需要排序展示在頁面上,常見的從資料庫查使用資料庫的排序,還有一種就是使用我們的開發語言進行排序,這裡給大家演示使用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);
}
測試結果如下:
注意:排序規則可以自己定義,根據業務需求來定義,這次就不寫了下次更新寫自定義規則排序