簡體   English   中英

查找原始的二維排序數組索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM