[java] Array 인덱스와 함께 정렬

kimjingwon·2023년 6월 24일
0
post-custom-banner

보통 배열을 정렬할때 value값을 기준으로 내부의 value값만 정렬한다.
하지만 배열의 정렬되는 value값 기준으로 index값도 같이 바뀌어야 되는 경우가 있다.

코드

//정렬해야할 정수형 배열
int arr1[] = {5,2,8,1,7};

//ValueIndexPair타입 배열 생성
ValueIndexPair[] valuePair =new ValueIndexPair[arr1.length];

//valuePair배열에 arr1배열의 index와 value값 저장
        for(int i=0;i< arr1.length;i++){
            valuePair[i] = new ValueIndexPair(arr1[i],i);
        }
      	
//valuePair배열의 value값 기준으로 정렬
        Arrays.sort(valuePair,Comparator.comparingInt(ValueIndexPair::getValue));
        
//오름차순정렬 후 기존 arr1배열에서의 index와 value값을 확인가능하다.
		valuePair[i].index
		valuePair[i].value
        
        
//ValueIndexPair클래스 생성
    static class ValueIndexPair {
        private final int value;
        private final int index;

        public ValueIndexPair(int value, int index) {
            this.value = value;
            this.index = index;
        }

        public int getValue() {
            return value;
        }

        public int getIndex() {
            return index;
        }
    }
post-custom-banner

0개의 댓글