title: custom sorting a java array
body: <p>I have an [] that has some numbers (distances from some point).<br>
  I want to create an array of indexes into the first array where the indexes are sorted by the distance.</p>
  
  <p>e.g.</p>
  
  <p>suppose <code>double[] dist=new double[5] {3.2, 1.4, 7.3, 2.2, 9.1};</code><br>
  then I want to get an array like this:</p>
  
  <p><code>int[] sortedIndexes=new int[5] {1, 3, 0, 2, 4};</code></p>
  
  <p>so if I want the second nearest distance I can check dist[sortedIndexes[1]].<br>
  I don't want to sort the original array, just the array of indexes based on the distances.</p>
  
  <p>UPDATE 1:
  The Code I was trying looks like this:</p>
  
  <pre><code>Collections.sort(sortedIDXs, new Comparator&lt;Integer&gt;() {
      public int compare(int idx1, int idx2) {
          return Double.compare(distances[idx1], distances[idx2]);
      }
  });
  </code></pre>
  
  <p>But I am getting several errors with it with the most "problematic" one being:
  "<strong><em>Cannot refer to a non-final variable distances inside an inner class defined in a different method</em></strong>"</p>
  
  <p>Thanks</p>