我有两对数组。在每对数组中,一个数组包含引用另一个结果数组的索引值,而第二个数组包含分数。这些都是经过排序的,因此例如在第一对中,我可以从Array-2中选择3个最好的高分,它们将分别对应于索引3、7和4。
现在的想法是组合这样的对,例如Pair-1和Pair-2,对它们进行排序,然后选择3个最佳值。
如下图所示,在结果中的排序值数组中,前两个最高值对应于来自对2的数组中的索引号1和6,而第三个值对应于来自对-1的数组的索引3。

如果你能告诉我如何在排序结果中跟踪各个数组的索引号,那就太好了。我知道如何对它们进行排序,但真的不知道如何跟踪这些单独的数组。
发布于 2011-06-28 23:22:40
在对象中思考。
如果您创建了一个具有索引、值和源数组属性的Pair对象,则可以使其对值执行Comparable操作。
从您的数组创建Pair对象,将它们放在List中,然后对其执行sort。
发布于 2011-06-28 23:04:15
你试过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]));
}https://stackoverflow.com/questions/6508510
复制相似问题