/*
如果一个方法的返回值类型是一个函数式接口,可以直接返回一个lambda表达式
当通过一个方法来获取一个Compartor接口类型的对象作为排序器时,可以调用该方法获取
*/
public class demo02Comparator {
//定义一个方法,方法的返回值类型是函数式接口
public static Comparator<String> getComparator(){
/*return new Comparator<String>() {
@Override
public int compare(String o1,String o2) {
return o2.length()-o1.length();
}
};*/
//优化
return( o1, o2)->o2.length()-o1.length();
}
public static void main(String[] args) {
//创建字符串数组
String[] arr ={"aaa","bbbb","ccccccc","ddddd"};
//输出排序前的数组
System.out.println(Arrays.toString(arr));
//调用Arrays中的sort方法 对字符串数组进行排序
Arrays.sort(arr,getComparator());
System.out.println(Arrays.toString(arr));
}
}