
java中如何使用sort从大到小排序
用户关注问题
我有一个整数数组,想要用Java的方法对它进行从大到小的排序,该怎么做?
使用Arrays.sort结合自定义比较器实现降序排序
Java的Arrays.sort方法默认是升序排序。如果想要实现从大到小的降序排序,需要传入一个比较器(Comparator)。对于对象数组(如Integer数组),可以使用Comparator.reverseOrder()。例如:
Integer[] arr = {5, 2, 9, 1};
Arrays.sort(arr, Comparator.reverseOrder());
如果是基本类型数组如int[],需要先转换成Integer[],因为基本类型数组不支持传入比较器。
我有一个ArrayList集合,想让它按照元素值从大到小排序,有什么简单的方法吗?
使用Collections.sort方法配合Comparator.reverseOrder
Java中可以使用Collections.sort方法对List集合排序。若想降序排序,可以传入Comparator.reverseOrder()作为比较器。例如:
List list = Arrays.asList(5, 3, 8, 1);
Collections.sort(list, Comparator.reverseOrder());
这样list中的元素就会按照从大到小的顺序排列。
我想使用Java 8的Stream功能对列表进行从大到小的排序,该怎么写代码?
借助Stream的sorted方法和Comparator.reverseOrder实现
Java 8引入了Stream API,可以流式处理数据。将集合流化后,可以调用sorted方法并传入Comparator.reverseOrder()实现降序排序。示例代码如下:
List list = Arrays.asList(2, 7, 4, 5);
List sortedList = list.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
sortedList就是从大到小排列的新列表。