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 -1return -1改成return 0即可.

最新文章

  1. 移动混合开发之android文件管理--&gt;flexbox,webFont。
  2. MATLAB中fft函数的正确使用方法
  3. LeetCode - 52. N-Queens II
  4. canvas练习
  5. SQL Server 之 GROUP BY、GROUPING SETS、ROLLUP、CUBE
  6. [leetcode] Bitwise AND of Numbers Range
  7. 深入理解maven及应用--转
  8. taocode
  9. PAT 07-0 写出这个数
  10. magento关于站点搬家,换空间
  11. IOS-UITableView开发常用各种方法总结
  12. KMP算法的一次理解
  13. Spring IOC之BeanFactory
  14. &lt;C++Primer&gt;第四版 阅读笔记 第四部分 “面向对象编程与泛型编程”
  15. 内建模块 datetime使用
  16. 清理Visual Studio 2017的项目历史记录或手工修改Visual Studio 2017的注册表设置
  17. 第9月第30天 MVP
  18. Nodejs express、html5实现拖拽上传
  19. 多线程-threading
  20. e575. The Quintessential Drawing Program

热门文章

  1. a:visited不起作用的原因解析
  2. 简单 hash 入门题目
  3. 百度DMA+小度App的蓝牙语音解决方案案例展示
  4. 6.JavaSE之数据类型扩展及面试题讲解
  5. java中implements和extends的区别
  6. .net core mysql CodeFirst
  7. [bzoj1875] [洛谷P2151] [SDOI2009] HH去散步
  8. PHP——foreach
  9. EFCore-脚手架Scaffold发生Build Failed问题的终极解决
  10. set集合迭代