, 그 매핑을 유지하는 데 사용되는 프록시 배열이 필요합니다, 다음
매핑 ... 예를 들어, 그에 따라이 배열을 정렬 어레이는 그 자신의 순서가 변경 될 수 있더라도, 마스터 인덱서 역할, 여전히 나타내는 다른 배열의 연관된 위치를 가리키는 각 엔트리 ...
String[] distance = {"1", "3", "6", "7", "9"};
String[] name = {"Joel", "John", "Joe", "Jill", "Jane"};
String[] values = {"1.5", "2.3", "5.6", "7.1", "6.5"};
// Mapping array...
Integer[] proxyLookup = new Integer[]{0, 1, 2, 3, 4};
System.out.println("Unsorted...");
for (int index : proxyLookup) {
System.out.println(name[index] + "; " + distance[index] + "; " + values[index]);
}
Arrays.sort(proxyLookup, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return name[o1].compareTo(name[o2]);
}
});
System.out.println("Sorted...");
for (int index : proxyLookup) {
System.out.println(name[index] + "; " + distance[index] + "; " + values[index]);
}
이 출력 할 것이다 ...
,363,210
Unsorted...
Joel; 1; 1.5
John; 3; 2.3
Joe; 6; 5.6
Jill; 7; 7.1
Jane; 9; 6.5
Sorted...
Jane; 9; 6.5
Jill; 7; 7.1
Joe; 6; 5.6
Joel; 1; 1.5
John; 3; 2.3
참고 값 나열 다르지만 연관된 데이터가 동일하게 유지되는 순서 ...
는 간단한 해결책이 특성을 유지 한 Object
로 데이터를 캡슐화하는 것이다. 그러면 문제가 크게 단순화됩니다.
위치를 나타내는 데 4 번째 배열을 사용할 수 없습니까? – daentech
어떻게하면됩니까? – axtscz
기본적으로 프록시 배열이 필요합니다. 프록시 배열은 다른 배열에 대한 인덱스를 보유합니다. 당신은 당신의 필요에 따라이 배열을 정렬합니다. – MadProgrammer