【发布时间】:2021-07-26 10:37:19
【问题描述】:
我想按二维ArrayList 的特定列值对它们进行排序,如果两个数组的列值相等,则使用另一个列值比较这两个数组。
例如:
array = [[2, 3, 4, 5][0, 2, 3, 4][0, 1, 2, 3][1, 2, 3, 4]]
我想先将它们与它们的索引[0] 进行比较,但由于array[1][0] 和array[2][0] 具有相同的值0 我想通过它们的索引[3] 来比较这两个数组。
因此,新数组将是:
[[0, 1, 2, 3][0, 2, 3, 4][1, 2, 3, 4][2, 3, 4, 5]]
我有这个代码
public ArrayList<List<Integer>> sortArray(ArrayList<List<Integer>> spaces) {
final Comparator<List<Integer>> comparator = new Comparator<List<Integer>>() {
@Override
public int compare(List<Integer> sList1, List<Integer> sList2) {
return sList1.get(0).compareTo(sList2.get(0));
}
};
Collections.sort(spaces, comparator);
return spaces;
}
但是,这只比较索引[0]的值,当值相等时没有条件。
【问题讨论】:
标签: java arrays sorting arraylist multidimensional-array