我有一个java中的double列表,我想按降序排列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
例如,这将在Java8中发挥神奇的作用
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
下降:
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;
}
});
我有一个点列表,每个点都是一个大小为2的小列表。我想按x的递增顺序对点列表进行排序,如果x值相等,我就按y的递减顺序排序来打破平局。 我编写了一个自定义比较器来对点进行排序,如下所示: 以下是排序前的输入: 以下是使用上述比较器排序后产生的结果: 观察:- 输入按x的升序排序。 (5,12)被正确地放在(5,10)之前 (9,-15)被正确地放在(9,-1000)之前 然而,(10001,-10)
这是我试过的,但不起作用。
我必须按降序整理出用户给出的15个数字。我可以写如何按升序对它们进行排序,但我不知道如何转动它们。使用for循环还是其他什么?
问题内容: 我有以下课程。在此,虹膜是具有某些属性的另一类。 我想对此数组列表进行排序(即列表 helperList),基于距离参数降序。我已经编写了以下方法,但是它不起作用。 有人可以提出解决方案吗? 问题答案: 为什么不让您的类实现接口,然后使用Collections类提供的内置排序方法。 我认为这可以解决问题。另外,此方法是稳定的。 http://docs.oracle.com/javase
我想用java对数字数组列表进行排序,所以基本上如果我有以下数组列表: 输出应为: arraylist应该根据第一个键然后第二个键进行排序。