I have an [] that has some numbers (distances from some point).
I want to create an array of indexes into the first array where the indexes are sorted by the distance.>
You're on the right track, but
Integer array than an int array if you're using a generic Comparator.Arrays.sort instead Collections.sort for sorting an array.You have to make the distances variable final if it's referenced in an anonymous inner class.
final double[] distances=new double[]{3.2, 1.4, 7.3, 2.2, 9.1};
Integer[] sortedIDXs = new Integer[]{0,1,2,3,4};
Arrays.sort(sortedIDXs, new Comparator() {
public int compare(Integer idx1, Integer idx2) {
return Double.compare(distances[idx1], distances[idx2]);
}
});