0

我有一个数组,而不是 arrayList,我想对它进行排序。这只告诉我集合不适用于参数(pixelPlaceSort.Pixel [],...等。

Collections.sort(pixels, new PixelComparator());

我可以使用 List 来解决它,但出于学习的目的,我不希望这样做。

那么这怎么能行呢?c 是一个整数。

class PixelComparator implements Comparator<Pixel> {

  PixelComparator() {
  }

  public int compare(Pixel p1, Pixel p2) {
    if(p1.c < p2.c) {
      return -1; 
    } else if(p1.c > p2.c) {
      return 1; 
    }
    else {
      return 0; 
    }
  }


}
4

4 回答 4

6

你可以使用Arrays.sort(Object[] array)Arrays.sort(Object[] array,Comparator c)

于 2012-05-16T11:35:29.097 回答
1

为此,您有一个名为Arrays的类。

使用Arrays.sort(pixels)Arrays.sort(pixels,new PixelComparator())

检查 java.util.Arrays 的javadoc并选择适当形式的 sort() 方法。

于 2012-05-16T11:35:23.993 回答
0

使用 Arrays 类 - 特别是这个Arrays.sort()方法。

于 2012-05-16T11:36:42.253 回答
0

你有 2 个选项来排序。

1-保持你的阵列:

您使用“数组”类的排序方法

Arrays.sort(pixels,new PixelComparator());

2- 使用列表

您首先将数组转换为 List,然后对其进行排序:

ArrayList<Pixel> pixellist  = new ArrayList<Pixel>(Arrays.asList(pixels));
Collections.sort(pixellist, new PixelComparator());
于 2012-05-16T11:43:52.440 回答