我想对数组进行排序,并按排序顺序找到每个元素的索引。因此,例如,如果我在数组上运行此命令:
[3,2,4]
我会得到:
[1,0,2]
有没有一种简单的方法可以在Java中做到这一点?
假设您的元素存储在数组中。
final int[] arr = // elements you want List<Integer> indices = new ArrayList<Integer>(arr.length); for (int i = 0; i < arr.length; i++) { indices.add(i); } Comparator<Integer> comparator = new Comparator<Integer>() { public int compare(Integer i, Integer j) { return Integer.compare(arr[i], arr[j]); } } Collections.sort(indices, comparator);
现在indices按其排序顺序包含数组的索引。您可以通过int[]足够简单的for循环将其转换回。
indices
int[]
for