首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按数值对ArrayList<String>进行排序

按数值对ArrayList<String>进行排序
EN

Stack Overflow用户
提问于 2010-09-16 07:01:44
回答 5查看 3.3K关注 0票数 3

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

"1024x768“、"800x600”、"1280x1024“等

我想根据字符串第一部分中的数值对其进行排序。也就是说,上面的代码看起来是这样的:

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

有没有一种又快又脏的方法来做到这一点,我指的是用不到2-3行的代码?若否,正确的做法是甚麽?我得到的值来自一个对象,而不是我自己的对象。它确实有返回int的getWidth()和getHeight()方法。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-16 07:13:01

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

代码语言:javascript
复制
Collections.sort(resolutions, new Comparator {
    public int compare(Resolution r1, Resolution r2) {
        return Integer.valueOf(r1.getWidth()).compareTo(Integer.valueOf(r2.getWidth()));
    }
});
票数 5
EN

Stack Overflow用户

发布于 2010-09-16 07:03:38

正确的方法是编写一个在String上操作的比较器实现,但它要解析到第一个非数字字符。然后,它会从中创建一个int,并比较int。

然后,可以将该比较器的一个实例与列表一起传递给Collections.sort()。

票数 0
EN

Stack Overflow用户

发布于 2010-09-16 07:03:47

使用自定义比较器通过Collections api对ArrayList进行排序。

代码语言:javascript
复制
Collections.sort(resolutionArrayList, new ResolutionComparator())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3722485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档