我在java中有一个doubles列表,我想按降序对ArrayList进行排序。
输入ArrayList如下:
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);
输出应该是这样的
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
发布于 2013-04-27 20:50:11
Collections.sort(testList);
Collections.reverse(testList);
它会做你想做的事。记住要导入Collections
!
发布于 2016-01-07 09:59:38
降序:
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;
}
});
发布于 2016-07-06 00:04:15
对于您的示例,这将在Java 8中发挥魔力
List<Double> testList = new ArrayList();
testList.sort(Comparator.naturalOrder());
但是,如果您想要按要排序的对象的某些字段进行排序,可以通过以下方法轻松实现:
testList.sort(Comparator.comparing(ClassName::getFieldName));
或
testList.sort(Comparator.comparing(ClassName::getFieldName).reversed());
或
testList.stream().sorted(Comparator.comparing(ClassName::getFieldName).reversed()).collect(Collectors.toList());
资料来源:https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html
https://stackoverflow.com/questions/16252269
复制相似问题