【发布时间】:2011-12-04 21:45:39
【问题描述】:
我有一个数组
double[] weights = { 32.0, 32.0, 25.0, 25.0, 30.0, 28.0,
12.0, 10.0, 8.0, 8.0, 18.0, 0.0 };
我想按照weights的降序排列其对应的索引0到11:
{ 32.0, 32.0, 30.0, 28.0, 25.0, 25.0, 18.0, 12.0, 10.0, 8.0, 8.0, 0.0 }
在这种情况下,我想要的输出是int[]:
{ 0, 1, 4, 5, 2, 3, 10, 6, 7, 8, 9, 11 }
我添加了一个 int[] 值来跟踪索引:
int[] values = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }
【问题讨论】:
-
Scala 中的 Oneliner:
weights.zipWithIndex.sortBy(-_._1).map(_._2)。有一个 library 为 Java 提供了类似的抽象。你可以使用它。