在Java中,可以使用以下方法将元素的索引保留在数组中:
以下是一个示例代码:
import java.util.Arrays;
public class ArrayIndexSort {
public static void main(String[] args) {
int[] array = {5, 2, 8, 1, 9};
int[] sortedIndexes = sortIndexes(array);
System.out.println("原始数组:");
System.out.println(Arrays.toString(array));
System.out.println("排序后的索引数组:");
System.out.println(Arrays.toString(sortedIndexes));
}
public static int[] sortIndexes(int[] array) {
int[] indexes = new int[array.length];
for (int i = 0; i < array.length; i++) {
indexes[i] = i;
}
Arrays.sort(indexes, (a, b) -> Integer.compare(array[a], array[b]));
return indexes;
}
}
输出结果:
原始数组:
[5, 2, 8, 1, 9]
排序后的索引数组:
[3, 1, 0, 2, 4]
这个示例代码中,我们创建了一个辅助数组indexes
,并使用for循环将元素的索引存储在其中。然后,我们使用Arrays类的sort()方法对辅助数组进行排序,排序的依据是原始数组中对应索引的元素值。最后,我们返回排序后的辅助数组作为结果。
这种方法可以在排序后保留元素的索引,以便在需要时可以轻松地访问原始数组中的元素。它在需要对数组进行排序并保留索引的情况下非常有用,例如需要根据元素值对数组进行排序,并且需要知道排序后的元素在原始数组中的位置。
腾讯云提供了多种适用于Java开发的云计算产品,例如云服务器、云数据库、云存储等。您可以根据具体的需求选择适合的产品进行开发和部署。具体产品介绍和链接地址可以参考腾讯云官方网站。
领取专属 10元无门槛券
手把手带您无忧上云