按第一列排序二维数组,然后按第二列排序

Don*_*Don 4 java arrays sorting multidimensional-array

int[][] arrs = {{1, 100}, {11, 22}, {1, 11}, {2, 12}};
Arrays.sort(arrs, (a, b) -> (a[0] - b[0]));
Run Code Online (Sandbox Code Playgroud)

上面的数组已排序为

{1, 100}
{1, 11}
{2, 12}
{11, 22}
Run Code Online (Sandbox Code Playgroud)

a[0]-b[0]我希望它们首先按 和 if 排序a[0]=b[0],然后按 排序a[1]-b[1]

{1, 11}
{1, 100}
{2, 12}
{11, 22}
Run Code Online (Sandbox Code Playgroud)

怎么做?

Swe*_*per 6

本质上,您想要做的就是按字典顺序比较内部数组(就像单词在字典中的排序方式一样)。Arrays.compare正是这样做的。

Arrays.sort(arrs, Arrays::compare);
Run Code Online (Sandbox Code Playgroud)