结合两个排序的数组,同时跟踪java中的各个索引?

时间:2011-06-28 14:58:07

标签: java arrays multidimensional-array sorting

我有两对数组。在每对中,一个数组包含引用另一个结果数组的索引值,而第二个数组包含分数。这些是排序的,因此例如在第一对中,我可以从Array-2中选择3个最佳高分,并且它们将分别对应于索引3,7和4。

现在的想法是组合这些对,例如Pair-1和Pair-2,对它们进行排序,然后选择3个最佳值。
就像你看到下面的图片一样,在结果中的排序值数组中,前两个最高值对应于来自Pair-2的数组中的索引号1和6,而第三个值对应于来自Pair-1的数组的索引3。
enter image description here

如果你能给我一些关于如何跟踪排序结果中各个数组的索引号的信息,那将是很好的。我知道如何对它们进行排序,但实际上不知道如何跟踪这些单独的数组。

2 个答案:

答案 0 :(得分:2)

在对象中思考。

如果您创建一个具有索引,值和源数组属性的Pair对象,则可以对该值进行Comparable

从数组中创建Pair个对象,将它们放在List然后sort中。

答案 1 :(得分:0)

你试过Hashtable吗?

Hashtable<Integer, Pair> sortedTable = new Hashtable<Integer, Pair>();

for (int i = 0; i < firstArray.length; i++) { //if the 2 arrays are equal in length
    sortedTable.put(sortedTable.size(), new Pair(firstArray[i], secondArray[i]));
}