首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何对ArrayList进行排序?

如何对ArrayList进行排序?
EN

Stack Overflow用户
提问于 2013-04-27 20:48:16
回答 19查看 1.1M关注 0票数 415

我在java中有一个doubles列表,我想按降序对ArrayList进行排序。

输入ArrayList如下:

代码语言:javascript
复制
List<Double> testList = new ArrayList();

testList.add(0.5);
testList.add(0.2);
testList.add(0.9);
testList.add(0.1);
testList.add(0.1);
testList.add(0.1);
testList.add(0.54);
testList.add(0.71);
testList.add(0.71);
testList.add(0.71);
testList.add(0.92);
testList.add(0.12);
testList.add(0.65);
testList.add(0.34);
testList.add(0.62);

输出应该是这样的

代码语言:javascript
复制
0.92
0.9
0.71
0.71
0.71
0.65
0.62
0.54
0.5
0.34
0.2
0.12
0.1
0.1
0.1
EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2013-04-27 20:50:11

代码语言:javascript
复制
Collections.sort(testList);
Collections.reverse(testList);

它会做你想做的事。记住要导入Collections

Here is the documentation for Collections

票数 603
EN

Stack Overflow用户

发布于 2016-01-07 09:59:38

降序:

代码语言:javascript
复制
Collections.sort(mArrayList, new Comparator<CustomData>() {
    @Override
    public int compare(CustomData lhs, CustomData rhs) {
        // -1 - less than, 1 - greater than, 0 - equal, all inversed for descending
        return lhs.customInt > rhs.customInt ? -1 : (lhs.customInt < rhs.customInt) ? 1 : 0;
    }
});
票数 160
EN

Stack Overflow用户

发布于 2016-07-06 00:04:15

对于您的示例,这将在Java 8中发挥魔力

代码语言:javascript
复制
List<Double> testList = new ArrayList();
testList.sort(Comparator.naturalOrder());

但是,如果您想要按要排序的对象的某些字段进行排序,可以通过以下方法轻松实现:

代码语言:javascript
复制
testList.sort(Comparator.comparing(ClassName::getFieldName));

代码语言:javascript
复制
 testList.sort(Comparator.comparing(ClassName::getFieldName).reversed());

代码语言:javascript
复制
 testList.stream().sorted(Comparator.comparing(ClassName::getFieldName).reversed()).collect(Collectors.toList());

资料来源:https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html

票数 129
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16252269

复制
相关文章

相似问题

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