Java 按第一列对二维数组排序,然后按第二列排序 int[]arrs={{11100}、{11,22}、{1,11}、{2,12}; sort(arrs,(a,b)->(a[0]-b[0]);
上面的数组已被排序为Java 按第一列对二维数组排序,然后按第二列排序 int[]arrs={{11100}、{11,22}、{1,11}、{2,12}; sort(arrs,(a,b)->(a[0]-b[0]);,java,arrays,sorting,multidimensional-array,Java,Arrays,Sorting,Multidimensional Array,上面的数组已被排序为 {1, 100} {1, 11} {2, 12} {11, 22} 我希望它们首先按a[0]-b[0]排序,如果a[0]=b[0],则按a[1]-b[1]排序 {1, 11} {1, 100} {2, 12} {11, 22} 如何做到这一点?基本上,您要做的是比较内部数组(如单词在字典中的顺序)。确实如此 Arrays.sort(arrs, Arrays::compare); 基本上,您要做的是比较内部数组(比如单词在字典中的顺序)。确实如此 Arrays.sort
{1, 100}
{1, 11}
{2, 12}
{11, 22}
我希望它们首先按a[0]-b[0]
排序,如果a[0]=b[0]
,则按a[1]-b[1]
排序
{1, 11}
{1, 100}
{2, 12}
{11, 22}
如何做到这一点?基本上,您要做的是比较内部数组(如单词在字典中的顺序)。确实如此
Arrays.sort(arrs, Arrays::compare);
基本上,您要做的是比较内部数组(比如单词在字典中的顺序)。确实如此
Arrays.sort(arrs, Arrays::compare);
您可以使用比较器链,如下所示:
int[]arrs={{11100}、{11,22}、{1,11}、{2,12};
数组。排序(ARR、比较器
.comparingit(arr->arr[0])。然后比较(arr->arr[1]);
Arrays.stream(arrs).map(Arrays::toString).forEach(System.out::println);
输出:
[1, 11]
[1, 100]
[2, 12]
[11, 22]
另请参见:您可以使用比较器链,如下所示:
int[]arrs={{11100}、{11,22}、{1,11}、{2,12};
数组。排序(ARR、比较器
.comparingit(arr->arr[0])。然后比较(arr->arr[1]);
Arrays.stream(arrs).map(Arrays::toString).forEach(System.out::println);
输出:
[1, 11]
[1, 100]
[2, 12]
[11, 22]
另见: