python에 이어서 java로 개발하는 일도 있으니, 여기도 정리함
배열 정렬 후 결과를 값으로 출력하는 것도 자주 사용되지만..
배열의 인덱스로 결과를 출력 할 때 참고하고자 정리함
다른 언어로 테스트한 예제 포스팅 링크
(python) sorted list of indices 예제
(cpp) sorted list of indices 예제
import java.util.*;
import java.util.stream.IntStream;
public class Test {
public static void main(String []args) throws Exception{
Integer []ary1 = new Integer[] {102, 67, 35, 77, 153};
Arrays.sort(ary1);
System.out.println(Arrays.toString(ary1));
Integer []ary2 = new Integer[] {102, 67, 35, 77, 153};
Integer[] indexes = IntStream.range(0, ary2.length).boxed().toArray(Integer[]::new);
Arrays.sort(indexes, new Comparator<Integer>() {
@Override public int compare(final Integer o1, final Integer o2) {
return Integer.compare(ary2[o1], ary2[o2]);
}
});
System.out.println(Arrays.toString(indexes));
}
}
------ 출력 ------
[35, 67, 77, 102, 153]
[2, 1, 3, 0, 4]
import java.util.*;
import java.util.stream.IntStream;
public class Test {
public static void main(String []args) throws Exception{
Integer []ary3 = new Integer[] {102, 67, 35, 77, 153};
Arrays.sort(ary3, Collections.reverseOrder());
System.out.println(Arrays.toString(ary3));
Integer []ary4 = new Integer[] {102, 67, 35, 77, 153};
Integer[] indexes = IntStream.range(0, ary4.length).boxed().toArray(Integer[]::new);
Arrays.sort(indexes, new Comparator<Integer>() {
@Override public int compare(final Integer o1, final Integer o2) {
return Integer.compare(ary4[o2], ary4[o1]);
}
});
System.out.println(Arrays.toString(indexes));
}
}
------ 출력 ------
[153, 102, 77, 67, 35]
[4, 0, 3, 1, 2]
그럼, 이만!!
다른 언어로 테스트한 예제 포스팅 링크
(python) sorted list of indices 예제
(cpp) sorted list of indices 예제