如何在Android中对List <Size>进行排序

jjL*_*Lin 2 android arraylist

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

old*_*inb 8

使用自定义Comparator.

A 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;
  }
});
Run Code Online (Sandbox Code Playgroud)