2

昇順で並べ替えたいのですList<Size> list1が。 試しましたが、うまくいかないようです。 リストを並べ替える最良の方法は何ですか?ありがとう。parameters.getSupportedPreviewSizes()(width * height)
Collection.sort

4

2 に答える 2

9

カスタムを使用しますComparator

AComparatorは、2つのオブジェクトを比較して、互いの順序を決定するために使用されます。与えられたCollection上で、aを使用して、完全に順序付けられComparatorたソートを取得できCollectionます。

final Camera camera = ...;
final List<Camera.Size> sizes = camera.getParameters().getSupportedPreviewSizes();
Collections.sort(sizes, new Comparator<Camera.Size>() {

  public int compare(final Camera.Size a, final Camera.Size b) {
    return a.width * a.height - b.width * b.height;
  }
});
于 2012-09-18T04:09:45.913 に答える
1

Comparableオブジェクトが他のオブジェクトに対してどのように評価されるかを指定するためのインターフェースを実装してからCollections.sort()、メソッドを使用して目的の順序でソートする必要があります。

class Size implements Comparable<Size>{

    Integer width;
    Integer height;

    public Integer getArea(){
        return width*height;
    }

    @Override
    public int compareTo(Size o) {
        return getArea().compareTo(o.getArea());
    }
}
于 2012-09-18T04:07:34.220 に答える