这个能解决你的问题
import java.util.Arrays;
public class ArraySortDemo
{
public static void main(String[] args )
{
int [] array = {-3,75,12,-3};//原数组
getSortIndex(array);
}
private static void getSortIndex(int[] array)
{
int [] array_copy =new int[array.length];//新数组 拷贝原数组 (如果不拷贝原数组在排序后被改变)
array_copy = Arrays.copyOf(array, array.length);
Arrays.sort(array);;//获取排序后的数组
for (int x=0;x<array_copy.length;x++)
{
for(int y=0;y<array.length;y++)
{
if(array_copy[x]==array[y])
{
System.out.print(y+1+"\t");
break;
}
}
}
}
}
效果:
import java.util.HashMap;
import java.util.Map;
public class ACM_Main2 {
public static void main(String args[]) throws Exception {
int[] arr1={-3,75,12,-3};
int[] arr2=arr1.clone();
Map<Integer,Integer> result=new HashMap<Integer,Integer>();
// System.out.println("排序前"+Arrays.toString(arr1));
Arrays.sort(arr2);
// System.out.println("排序后"+Arrays.toString(arr2));
int index=1;
for (int data : arr2) {
if(result.get(data)==null) {
result.put(data,index++);
}
}
for (int data : arr1) {
System.out.print(result.get(data)+" ");
}
System.out.println();
}
}
//简单的写了一下 ,你要求的功能实现了。
//希望起到抛砖引玉的作用
能不能用数组实现?
数组实现? 你是指 Arrays.sort(arr2);这个排序用数组
还是指 Map result=new HashMap(); 这个结果集用数组呢。
前者的话,找一下选择排序、冒泡排序、快速排序。
后者的话,暂时没想好,看到你这需求就想到键值对了......