首页 > 解决方案 > Java如何打印已排序二维数组的原始索引?

问题描述

假设我有一个 5X1 二维数组 [2,3,1,4,5],所以索引将是 [[0,0],[1,0],[2,0],[3,0],[ 4,0]] 仍然,但是如何让原始索引保持在值中?所以我可以在对值进行排序后打印出索引(如果有意义的话),例如

排序后的值将是 [1,2,3,4,5],但索引将是 [2,0][0,0][1,0][3,0][4,0]你操纵它吗?在此先感谢,我们将不胜感激!

{
 int[][] array = new int[5][1];

 array = {{2,3,1,4,5}};
 //at this point the array index will be [[0,0],[1,0],[2,0],[3,0],[4,0]]

 Arrays.sort(array);
 //i want the index to stay within the value after sorting...

} 

标签: java

解决方案


奇怪的问题。我将完全重构代码以使用我自己的自定义对象,该对象不仅包含值,还包含原始位置。

另一种方法是编写自己的排序,但在排序时,保留第二个数组,其中包含原始位置,以及对第一个数组所做的一切,你镜像到第二个数组。

第三种方法:如果保证数组的值是唯一的,则可以先复制数组。调用一个 origArray 和一个 sortedArray。然后,当查看 sortedArray 中的一个项目时,在 origArray 中找到它,这会告诉你它曾经在哪里。但这取决于值是唯一的,这是一个糟糕的假设。


推荐阅读