【发布时间】:2015-06-20 20:55:02
【问题描述】:
给定以下输入:
-100
50
0
56.6
90
我已将每个值作为 BigDecimal 添加到列表中。
我希望能够将列表从最高值到最低值排序。
我尝试通过以下方式做到这一点:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
List<BigDecimal> list = new ArrayList<BigDecimal>();
while(sc.hasNext()){
list.add(new BigDecimal(sc.next()));
}
Collections.reverse(list);
for(BigDecimal d : list){
System.out.println(d);
}
}
哪些输出:
90
56.6
0
50
-100
在这种情况下,50 应该是大于 0 的值。
在考虑十进制和非十进制值的情况下,如何正确地将 BigDecimal 列表从高到低排序?
【问题讨论】:
-
Collections.reverse只是反转列表。使用Collections.sort(list, Comparator.reverseOrder()); -
我想你想要
sort,而不是reverse...
标签: java list sorting bigdecimal