在刷LeetCode56题的时候,先按照二维数组中intervals的每一组值的第一个值来排序。也就是这样
[[8,10],[1,3],[2,6],[15,18]] 排序后变成 [[1,3],[2,6],[8,10],[15,18]]
这里用到了Arrays.sort()方法。
Arrays.sort(intervals,(a,b)->a[0]-b[0]);
这个方法乍一看有点懵。后面查了 一些博客根据自己的总结如下
Arrays.sort方法的完整应该是这样
Arrays.sort(intervals, new Comparator<int[]>(){
@Override
public int compare(int[] a, int[] b) {
return a[0]-b[0];//如果这个值大于0,则是升序
}
然后后面的匿名类可以写成Lambda表达式,可以省略函数名,返回值类型和return 关键字,只要给定参数(a,b),直接得到一个表达式的结果
Arrays.sort(intervals, (a, b)->a[0]-b[0]);