int[] arr=new int[]{3,1,5,4,6,2};
Arrays.sort(arr);
Array.sortで、一発で、大きさ順になるようですが、
このとき、大きさの番号順を得た得たいのですが
int[] arr2=new int [7];
でarr2[1]=2;arr2[2]=6;arr2[3]=1;////という結果が得たいのです。
やり方は色々ありますが、例えばこんな感じ。
class Test { public static void main (String[] args) { int[] arr=new int[]{3,1,5,4,6,2}; // 元の順番を取っておく Map<Integer,Integer> seq = new HashMap<Integer,Integer>(); for (int i = 0 ; i < arr.length ; ++i) { seq.put(Integer.valueOf(arr[i]), Integer.valueOf(i+1)); } // 並べ替え Arrays.sort(arr); // 元の順番の配列 int max = Arrays.stream(arr).max().getAsInt() + 1; int[] arr2 = new int[max]; for (int i = 0 ; i < arr.length ; ++i) { arr2[arr[i]] = seq.get(Integer.valueOf(arr[i])); } } }