Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按第一列对二维数组排序,然后按第二列排序 int[]arrs={{11100}、{11,22}、{1,11}、{2,12}; sort(arrs,(a,b)->(a[0]-b[0]);_Java_Arrays_Sorting_Multidimensional Array - Fatal编程技术网

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]

另见: