且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

自定义排序java数组

更新时间:2022-02-18 09:11:59

您在正确的轨道上,但


  • 如果使用 Integer 数组比使用 int 数组更好一个通用的 Comparator< Integer>

  • 你必须使用 Arrays.sort Collections.sort 用于排序数组。

  • 匿名内部类。

  • You're better off with an Integer array than an int array if you're using a generic Comparator<Integer>.
  • You have to use 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<Integer>() {
    public int compare(Integer idx1, Integer idx2) {
        return Double.compare(distances[idx1], distances[idx2]);
    }
});