JDK8 通過Lamda表示式對List排序

2021-09-28 16:30:18 字數 1868 閱讀 5013

listlist = new arraylist<>();

list.add(1);

list.add(3);

list.add(0);

list.add(7);

list.add(2);

system.out.println("排序前:" );

iteratoriterator = list.iterator();

while (iterator.hasnext())

system.out.println();

list.sort((a,b) -> a - b);

iteratoriteratorafter = list.iterator();

system.out.println("正排序後:");

while (iteratorafter.hasnext())

list.sort((a,b) -> b - a);

system.out.println();

iteratoriteratorreafter = list.iterator();

system.out.println("反排序後:");

while (iteratorreafter.hasnext())

輸出結果:

排序前:

13072

正排序後:

01237

反排序後:

73210

在list.sort方法裡面,主要語句list.sort((a,b) -> a - b);,主要是乙個比較器,兩個值比較,則是正排序(a-b),如果返回後面後面減去前面的話,就是b-a,則是反序。

核心**,歸併演算法:

靈活的乙個計算最佳折中的原始碼,計算奇偶和除2

private static int minrunlength(int n) 

return n + r;

}

原始碼

private static int countrunandmakeascending(t a, int lo, int hi,

comparator<? super t> c) else

return runhi - lo;

}

@suppresswarnings("fallthrough")

private static void binarysort(t a, int lo, int hi, int start,

comparator<? super t> c)

assert left == right;

/** the invariants still hold: pivot >= all in [lo, left) and

* pivot < all in [left, start), so pivot belongs at left. note

* that if there are elements equal to pivot, left points to the

* first slot after them -- that's why this sort is stable.

* slide elements over to make room for pivot.

*/int n = start - left; // the number of elements to move

// switch is just an optimization for arraycopy in default case

switch (n)

a[left] = pivot;

}}

jdk8新特性 lambda表示式

1 什麼是lambda表示式?lambda表示式 也叫做閉包 是jdk8中的新語法,它允許我們將函式當成引數傳遞給某個方法或者將 本身作為資料進行處理。2 lambda表示式示例 2.1 用lambda表示式實現runnable 通過匿名內部類方法重寫runnable介面 new thread ne...

JDK8 新特性 Lambda 表示式

lambda 表示式概訴 對介面進行實現呼叫 中代表著介面的入引數 中內容是介面的實現 當 中的引數有切僅有乙個時 本身可以省略 同理 當方法實現有切僅有一行時 本身也可以省略 宣告介面 public inte ce personsaymethod使用介面 public class lambdate...

JDK8新特性 Lambda表示式(上)

lambda表示式理解為簡介的表示可傳遞的匿名函式的一種方式。匿名,與普通的方法不同,沒有明確的名稱 函式,不像普通方法那樣屬於某個特定的類,但是他和方法一樣都具有引數列表 函式主體 返回型別 還有可能有丟擲異常的列表 傳遞,可以作為引數傳遞給方法或儲存在變數中 簡潔,無需像匿名類那樣寫很多的模版 ...