List集合的排序
2024-08-30 10:27:13
最近在写需求时,将某张表中的短信信息拿出,sql写完后,取出来后的结构是List<Map>,在进行到某一步时需要将这个List<Map>进行逆序排序,
当时第一想法便是写一个for循环,然后得到想要的排序。事后,偶然间看到一个工具类Collections,其中有一个方法是reverse,
示例逆序代码如下,核心代码只要一句,非常简单:
以上是最简单的逆序,平时在写代码里往往会根据某一个条件或者字段等等进行排序。如果碰上这样的需求,一般会有两种方法:
- 第一种是list中的对象实现Comparable接口;
- 第二种方法是根据Collections.sort重载方法来实现。
此处,我就用第二种方法做一个示例
既然要根据某一条件进行排序,那么先做好前期准备,这里new了三个map,分别把一些数值put到map里,key为countNum,value为不同的值,如下:
接着定义要排序的字段(我这里用的是countNum),以及重载sort()方法,最后打印输出,如下:
其中new Comparator<Map>()的Map也可以是一个bean,return的写法也可以是io1 .compareTo(io2);
具体有什么不同,就由小伙伴自己尝试了,毕竟这个太简单了,就不说了。
这里再啰嗦一下说一下原理,为什么return的时候用了compareTo()方法就能排序好,理由如下:
compareTo()这个方法,它返回三种 int
类型的值: 负整数,零 ,正整数;
负整数 : 当前对象的值 < 比较对象的值 , 位置排在前;
零 : 当前对象的值 = 比较对象的值 , 位置不变;
正整数 : 当前对象的值 > 比较对象的值 , 位置排在后
最新文章
- js中几种实用的跨域方法原理详解(转)
- 字节、字、bit、byte的关系
- Django 1.10 中文文档------3.2.1 模型Models
- HTML5学习总结
- Huge Page 是否是拯救性能的万能良药?
- Windows程序控件升级==>;>;构建布局良好的Windows程序
- 通过定位position=";fixed";实现网页内容的固定层效果
- 让Windows7运行速度更快的BIOS优化设置教程
- [原创]从Oracle和Microsoft Sql Server迁移到PostgreSQL Plus Advanced Server
- Linux必学的60个命令【转载】
- 设计模式六: 模板方法(Template Method)
- MQ实战
- Mongodb: Sort operation used more than the maximum 33554432 bytes of RAM
- 你知道怎么用Idea抽取方法、创建class吗?
- python day17面向对象-组合
- C#深入解析委托——C#中为什么要引入委托
- [整理]Assembly中的DLL提取
- 非常酷的jQuery/HTML5图片滑块特效 带弹性菜单
- 硬盘分区表知识——详解硬盘MBR (转)
- 如何快速分析出现性能问题的Linux服务器