在学习 Java 的过程中,我遇到了一个疑问。
我们可以使用 Arrays.sort() 对一维数组进行排序,但是如果我想根据三列对二维数组进行排序呢?是否有任何选项可以解决这个问题,还是我必须自己编写代码(类似于三个嵌套循环)?
这是一个示例输入:
13 2 28 36
1 4 56 17
4 2 5 40
2 4 41 55
9 5 48 12
19 2 25 12
20 5 13 8
15 3 51 30
12 5 39 59
17 3 56 40
3 1 56 46
7 3 28 51
8 5 14 58
5 3 34 15
14 4 53 2
18 4 38 57
6 2 16 25
16 3 17 13
10 5 41 33
11 1 13 57
列是 int,它存储在一个 int 数组中。
我想按第 2 列排序,如果找到相等的数字,则按第 3 列排序,最后,如果找到相等的数字,则按第 3 列排序。
输出应该是这样的:
11 1 13 57
3 1 56 46
4 2 5 40
6 2 16 25
19 2 25 12
13 2 28 36
16 3 17 13
7 3 28 51
5 3 34 15
15 3 51 30
17 3 56 40
18 4 38 57
2 4 41 55
14 4 53 2
1 4 56 17
20 5 13 8
8 5 14 58
12 5 39 59
10 5 41 33
9 5 48 12
有没有简单的方法可以做到这一点? 请记住,我是 Java 新手。
问候,
法沃拉斯
最佳答案
简单使用 Comparator
并使用 Arrays.sort(arr, comparator);
关于Java基于三列对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8078200/