在Java中,当另一个数组按升序排序时,更改一个数组的值
我有两个阵列:
int[] arr1
int[] arr2
上面两个都有一个大小为n
的用户输入
我需要使用java按升序排列arr2。如何更改对应于arr2
值的arr1值
示例(更多信息):
int[] arr1={1,2,3,4,5};
int[] arr2={3,6,5,1,9};
Arrays.sort(arr2);
我希望输出的方式:
- arr1={4,1,3,2,5}
- arr2={1,3,5,6,9}
这里arr2已经被排序了
# 1 楼答案
我要做的是:
创建一个包含两个数字的类(一个来自
arr1
,另一个来自arr2
)。使其实现可比性并比较第二个数字。在该方法中,创建一个
Pair
列表并用这两个数组的元素填充,然后使用Collections
中的方法对其进行简单排序# 2 楼答案
如果第二个数组中没有重复的数字(如提供的示例),则可以使用
Map
首先,拿一张地图。将数组2值放入映射中的
key
和数组1值放入映射中的value
。然后根据这些值对地图进行排序。现在如果你从地图上拿到钥匙,你就会得到你想要的使用TreeMap。它不需要排序。它以这样的方式输入数据,以确保映射将以升序键顺序进行
输出: