如何对Android </size>中的List <size>进行排序

时间:2012-09-18 04:05:31

标签: android arraylist

我的List<Size> list1来自parameters.getSupportedPreviewSizes() 我想按升序排序(width * height) 我试过了Collection.sort,但似乎行不通 列表排序的最佳方法是什么?感谢。

2 个答案:

答案 0 :(得分:8)

使用自定义Comparator

  

Comparator用于比较两个对象以确定它们相对于彼此的排序。在给定Collection上,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;
  }
});

答案 1 :(得分: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());
    }
}