Jdk8 lambda表示式
阿新 • • 發佈:2018-11-24
1.例項:
對一個字母列表進行排序
List<String> letters = Arrays.asList("c", "a", "d", "b");
(1)不使用lambda表示式實現
靜態工具方法Collections.sort接受一個list,和一個Comparator介面作為輸入引數, Comparator的實現類可以對輸入的list中的元素進行比較。通常情況下,你可以直 接用建立匿名Comparator物件,並把它作為引數傳遞給sort方法。
//Collections 的sort方法,需要傳入陣列和一個Comparator藉口 Collections.sort(letters, new Comparator<String>() { @Override public int compare(String o1, String o2) { return o2.compareTo(o1); } });
(2)使用lambda表示式實現
//lambda表達
Collections.sort(letters, (String a, String b) -> {
return b.compareTo(a);
});
//省去{}
Collections.sort(letters,(String a,String b)->a.compareTo(b));
//省去引數型別
Collections.sort(letters,(a,b) ->a.compareTo(b));
2.測試程式碼
import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; public class TestClass { public static void main(String[] args) { List<String> letters = Arrays.asList("c", "a", "d", "b"); //Collections 的sort方法,需要傳入陣列和一個Comparator藉口 Collections.sort(letters, new Comparator<String>() { @Override public int compare(String o1, String o2) { return o2.compareTo(o1); } }); System.out.println("letters;Comparator介面>>>>"+letters); //lambda表達 Collections.sort(letters, (String a, String b) -> { return b.compareTo(a); }); //省去{} Collections.sort(letters,(String a,String b)->a.compareTo(b)); //省去引數型別 Collections.sort(letters,(a,b) ->a.compareTo(b)); System.out.println(letters); } }
3.測試結果