package com.itheima.demo03.LambdaTest;java
import java.util.Arrays;
import java.util.Comparator;數組
/*ide
若是一個方法的返回值類型是一個函數式接口,那麼就能夠直接返回一個Lambda表達式。 當須要經過一個方法來獲取一個java.util.Comparator接口類型的對象做爲排序器時,就能夠調該方法獲取。
*/
public class Demo02Comparator {函數
//定義一個方法,方法的返回值類型使用函數式接口Comparator public static Comparator<String> getComparator(){ //方法的返回值類型是一個接口,那麼咱們能夠返回這個接口的匿名內部類 /*return new Comparator<String>() { @Override public int compare(String o1, String o2) { //按照字符串的降序排序 return o2.length()-o1.length(); } };*/ //方法的返回值類型是一個函數式接口,全部咱們能夠返回一個Lambda表達式 /*return (String o1, String o2)->{ //按照字符串的降序排序 return o2.length()-o1.length(); };*/ //繼續優化Lambda表達式 return (o1, o2)->o2.length()-o1.length(); } public static void main(String[] args) { //建立一個字符串數組 String[] arr = {"aaa","b","cccccc","dddddddddddd"}; //輸出排序前的數組 System.out.println(Arrays.toString(arr));//[aaa, b, cccccc, dddddddddddd] //調用Arrays中的sort方法,對字符串數組進行排序 Arrays.sort(arr,getComparator()); //輸出排序後的數組 System.out.println(Arrays.toString(arr));//[dddddddddddd, cccccc, aaa, b] }
}優化