0

arrayListではなく配列があり、並べ替えたいと思います。これは、コレクションが引数(pixelPlaceSort.Pixel []、...など)に適用できないことを教えてくれるだけです。

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

リストを使用して解決できますが、学習の目的でそれはしたくありません。

では、これはどのように機能するのでしょうか。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

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

これを並べ替えるには2つのオプションがあります。

1-アレイの維持:

「配列」クラスのsortメソッドを使用します。

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

2-代わりにリストを使用する

最初に配列をリストに変換してから、並べ替えます。

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

Arrays クラス、具体的にはこのArrays.sort()メソッドを使用します。

于 2012-05-16T11:36:42.253 に答える