1. 程式人生 > >使用Java8新特性對List進行排序

使用Java8新特性對List進行排序

前言:

在專案開發中往往會遇到各種資料需要排序展示在頁面上,常見的從資料庫查使用資料庫的排序,還有一種就是使用我們的開發語言進行排序,這裡給大家演示使用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);
	}

測試結果如下:

注意:排序規則可以自己定義,根據業務需求來定義,這次就不寫了下次更新寫自定義規則排序