[英]Finding original 2d sorted array indexes
我有這個數組
Array Index
[3,5] - 0
[1,7] - 1
[12,4] - 2
[3,2] - 3
我正在使用這種
Arrays.sort(array, (Integer[] int1, Integer[] int2) -> {
Integer numberOfKeys1 = int1[1];
Integer numberOfKeys2 = int2[1];
return numberOfKeys1.compareTo(numberOfKeys2);
});
要得到
Array Index Index I want
[3,2] - 0 - 3
[12,4] - 1 - 2
[3,5] - 2 - 0
[1,7] - 3 - 1
所以我的問題是。 如何獲得排序的二維數組的原始索引?
添加了帶有索引的第三行
array[i][2] = i;
然后進行排序。 解決,工作。
您可以定義一個包含數組和原始索引的類。
class ArrayIndex {
Integer[] data;
int originalIndex;
}
然后像這樣對ArrayIndex[] array
進行排序:
Arrays.sort(array, (ArrayIndex a, ArrayIndex b) ->
Integer.compare(a.data[1], b.data[1])
);
請注意上面的Integer.compare
方法如何簡化比較並避免裝箱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.