【发布时间】:2013-08-31 18:53:39
【问题描述】:
我正在尝试在 Java 中找到一个解决方案来执行以下操作。
int [] keys = new int[]{7,9,4,2,8,5,6,0}; // not necessarily a continuous series
double [] vals = new double[]{10,31,20,22,21,30,33,34}; // same length as keys<br/>
我需要对keys(从低到高)进行排序,并按该顺序排列对应的vals。例如,这种情况下的输出将是,
sorted keys: 0, 2, 4, 5, 6, 7, 8, 9
ordered vals: 34, 22, 20, 33, 10, 30, 21, 31
我不能使用映射,因为在某些计算中我需要访问键和值,并给出像 keys[i] 或 vals[j] 这样的索引。
提前致谢,
【问题讨论】:
-
你为什么不使用 TreeMap 并相应地使用 i 和 j 插入键和值。因为你说keys.length和values.length是一样的。
-
A
TreeMap是Map并且 OP 说他不能使用Map。 -
@BuhakeSindi OP 不使用 MAP 的原因对我来说没有多大意义。因为键和值的长度相同,索引也一样。
-
除了使用 ihsan 的答案和树形图之外,唯一的其他选择是自己编写排序,并且每当您进行交换时,也要交换另一个数组。
标签: java arrays sorting indexing