对数组进行排序而不是对ArrayList进行排序

时间:2012-05-16 11:33:30

标签: java arrays sorting processing

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

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

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

那么这怎么办? c是一个int。

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 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:1)

为此你有一个名为 Arrays 的课程。

使用 Arrays.sort(像素) Arrays.sort(像素,新PixelComparator())

检查javadoc以获取java.util.Arrays并选择相应形式的sort()方法。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

你有2个选项可以对此进行排序。

1-保持阵列

您使用sort method of the "Arrays" Class

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

2-使用列表

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

ArrayList<Pixel> pixellist  = new ArrayList<Pixel>(Arrays.asList(pixels));
Collections.sort(pixellist, new PixelComparator());