我有一个视频分辨率的ArrayList看起来像这样:

“1024x768”,“800x600”,“1280x1024”等

我想基于字符串的第一部分中的数值对它进行排序。
即,上面的代码看起来像这样:

“800x600”,“1024x768”,“1280x1024”

有没有一种快速而又肮脏的方法来执行此操作,我的意思是少于2-3行代码?如果没有,正确的方法是什么?我获得的值来自对象而不是我自己的对象。它确实具有返回整数的getWidth()和getHeight()方法。

最佳答案

如果数组中的对象是带有Resolution方法的getWidth实例,则可以使用Comparator对这些对象进行排序:

Collections.sort(resolutions, new Comparator {
    public int compare(Resolution r1, Resolution r2) {
        return Integer.valueOf(r1.getWidth()).compareTo(Integer.valueOf(r2.getWidth()));
    }
});

10-05 21:10