6-3 lambda表达式
import java.util.Arrays; import java.util.Comparator; public class LengthComparator implements Comparator<String> { @Override public int compare(String first, String second) { System.out.println("==="); return second.length() - first.length(); } public static void main(String[] args) { String[] firend = {"pa","eee","pmee"}; // Arrays.sort(firend); Arrays.sort(firend, new LengthComparator()); // Arrays.sort(firend, (String first, String second) -> first.length() - second.length()); // Arrays.sort(firend, (String first, String second) -> { if (first.length()>second.length()) {return 1;} else{return 0;}} ); // Arrays.sort(firend, (first, second) -> first.length() - second.length()); for (String string : firend) { System.out.println(string); } } /** * lambda表达式 * * * Java是一种强类型的语言 * *1. 语法: * * 参数 箭头(->)表达式 如果表达式无法完成计算可以放在{}里 * * 例如: (String first, String second) -> first.length() - second.length() * (String first, String second) -> { if (first.length()>second.length()) {return 1;} else{return 0;}} * * 即使没有参数,也要提供括号 () - > {for(int i = 0;i< 5 ;i++){System.out.println(i);}} * *如果可以推导出参数类型可以将其忽略 * Comparator<String> com = ( first, second) -> first.length() - second.length() * * * 2. * Arrays.sort(firend, new LengthComparator()); sort方法会调用一个new LengthComparator()对象实例(compare不是静态方法), * 会不断调用重写的compare方法,直到排序完成(重写compare方法,自定义一个排序方式)。 * */ }
相关推荐
Lzs 2020-10-23
聚合室 2020-11-16
零 2020-09-18
Justhavefun 2020-10-22
jacktangj 2020-10-14
ChaITSimpleLove 2020-10-06
Andrea0 2020-09-18
周游列国之仕子 2020-09-15
afanti 2020-09-16
88234852 2020-09-15
YClimb 2020-09-15
风雨断肠人 2020-09-04
卖口粥湛蓝的天空 2020-09-15
stulen 2020-09-15
pythonxuexi 2020-09-06
abfdada 2020-08-26
梦的天空 2020-08-25