java中list的sort()功能如何使用?如果倒序如何正序?
2024-10-08 08:11:32
list.sort()接收一个Comparable接口,其中compare方法是必须实现的,int compare(T o1, T o2);
,它接受两个参数:o1,o2. o2表示list排序前的前值,o1为后值,compare对他们通过比较进行排序。compare如果返回1
则表示o1在后,o2在前(等价于位置不变);返回-1
表示o1在前o2在后(等价置换o1与o2的位置);返回0
表示位置不变
可以使用lambda表达式进行从小到大排序:
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < 10; i++) {
list.add(random.nextInt(100));
}
// 从小到大排序
list.sort((o1, o2) -> {
if (o1.equals(o2)) {
return 0;
} else if (o1 > o2) {
//o2为前值,o1为后值;这里理解为:后值比前值大,则不交换位置,等价从小到大排序
//如果这里返回 -1,则为从大到小排序
return 1;
} else {
//后值比前值小,则交换位置
return -1;
}
});
list.forEach(e -> System.out.print(e + " "));
}
如果需要从大到小排序,只需要将代码中 return 1
改成return -1
, return -1
改成return 0
即可.
最新文章
- 移动混合开发之android文件管理-->;flexbox,webFont。
- MATLAB中fft函数的正确使用方法
- LeetCode - 52. N-Queens II
- canvas练习
- SQL Server 之 GROUP BY、GROUPING SETS、ROLLUP、CUBE
- [leetcode] Bitwise AND of Numbers Range
- 深入理解maven及应用--转
- taocode
- PAT 07-0 写出这个数
- magento关于站点搬家,换空间
- IOS-UITableView开发常用各种方法总结
- KMP算法的一次理解
- Spring IOC之BeanFactory
- <;C++Primer>;第四版 阅读笔记 第四部分 “面向对象编程与泛型编程”
- 内建模块 datetime使用
- 清理Visual Studio 2017的项目历史记录或手工修改Visual Studio 2017的注册表设置
- 第9月第30天 MVP
- Nodejs express、html5实现拖拽上传
- 多线程-threading
- e575. The Quintessential Drawing Program