最近在写需求时,将某张表中的短信信息拿出,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 类型的值: 负整数,零 ,正整数;

负整数   :   当前对象的值 < 比较对象的值 , 位置排在前;

零  :  当前对象的值 = 比较对象的值 , 位置不变;

正整数   :   当前对象的值 > 比较对象的值 , 位置排在后

List集合的排序的更多相关文章

  1. 按bean的属性值对list集合进行排序

    List根据对象的某个属性排序工具类 List排序 import java.util.Collections; import java.util.Comparator; import java.uti ...

  2. List泛型集合对象排序

    本文的重点主要是解决:List<T>对象集合的排序功能. 一.List<T>.Sort 方法 () MSDN对这个无参Sort()方法的介绍:使用默认比较器对整个List< ...

  3. wpf 导出Excel Wpf Button 样式 wpf简单进度条 List泛型集合对象排序 C#集合

    wpf 导出Excel   1 private void Button_Click_1(object sender, RoutedEventArgs e) 2 { 3 4 ExportDataGrid ...

  4. 【转载】C#中使用OrderBy和ThenBy等方法对List集合进行排序

    在C#的List操作中,针对List对象集合的排序我们可以使用OrderBy.OrderByDescending.ThenBy.ThenByDescending等方法按照特定的对象属性进行排序,其中O ...

  5. Java中单列集合List排序的真实应用场景

    一.需求描述 最近产品应客户要求提出了一个新的需求,有一个列表查询需要按照其中的多列进行排序. 二.需求分析 由于数据总量不多,可以全部查询出来,因此我就考虑使用集合工具类Collections.so ...

  6. 复杂对象List集合的排序

    对于集合的排序,直接的有sort().间接的有借用compareTo.Comparable等,但是对于相对复杂的对象集合,还得自己实现方法来处理. 现在有这样一个思路: 第一步:从需要排序的对象集合中 ...

  7. 对map集合进行排序

          今天做统计时需要对X轴的地区按照地区代码(areaCode)进行排序,由于在构建XMLData使用的map来进行数据统计的,所以在统计过程中就需要对map进行排序. 一.简单介绍Map   ...

  8. 利用Trie树对字符串集合进行排序并计算特征值

    该算法用于将一组乱序的字符串反序列化到一个Trie树中,这个过程即可视为对字符串进行了一次排序. 还可以通过调用 GetFeatureString 将该 Trie 树重新序列化. #include & ...

  9. C#数组集合使用 排序的问题

    //没有顺序 //ArrayList a = new ArrayList(); //a.Add("asda"); //a.Add("asda222222"); ...

  10. JAVA中的集合与排序

    一:常见的集合类 Collection接口  和   Map接口 Collection ①:collection是最常见的集合的上级接口. ②:继承自collection的常用接口有List,Set, ...

随机推荐

  1. Netty源码分析-- FastThreadLocal分析(十)

    上节讲过了ThreadLocal的源码,这一节我们来看下FastThreadLocal.这个我觉得要比ThreadLocal要简单,因为缺少了对于Entry的清理和整理工作,所以ThreadLocal ...

  2. Java Grammer:数据类型

    Java的数据类型 我们知道,Java是一种强类型语言,类型对于Java语言来说非常的重要不言而喻,在Java中,分为基础数据类型和引用数据类型,其中基础数据类型分为了四类八种: 下面,我们来分别说一 ...

  3. 神奇的 SQL 之子查询,细节满满 !

    前言 开心一刻 有一天,麻雀遇见一只乌鸦. 麻雀问:你是啥子鸟哟 ? 乌鸦说:我是凤凰. 麻雀说:哪有你龟儿子这么黢黑的凤凰 ? 乌鸦说:你懂个铲铲,老子是烧锅炉的凤凰. 子查询 讲子查询之前,我们先 ...

  4. Netty学习(六)-LengthFieldBasedFrameDecoder解码器

    在TCP协议中我们知道当我们在接收消息时候,我们如何判断我们一次读取到的包就是整包消息呢,特别是对于使用了长连接和使用了非阻塞I/O的程序.上节我们也说了上层应用协议为了对消息进行区分一般采用4种方式 ...

  5. Web开发中的相对路径和绝对路径

    在学习HTML的时候一定会遇到引入文件和链接跳转页面,比如:JS文件.CSS文件.Image图片.我们就会考虑是相对路径和绝对路径的问题.下面PHP程序员雷雪松就详细讲解下Web开发中的相对路径和绝对 ...

  6. 以股票案例入门基于SVM的机器学习

    SVM是Support Vector Machine的缩写,中文叫支持向量机,通过它可以对样本数据进行分类.以股票为例,SVM能根据若干特征样本数据,把待预测的目标结果划分成“涨”和”跌”两种,从而实 ...

  7. windows--OSError: [Errno 22] Invalid argument: '\u202aE:/desk/Desktop/test.txt' 读取文件的坑

    准备打开文件时,报了如下错误: 在路径中出现了这个Unicode 202a字符,导致了这个错误. 这玩意是哪里来的? 复制windows文件属性的时候复制下图中的路径而来的. 解释: 这个字符的含义是 ...

  8. Visual Studio 2015&2017 key

    Visual Studio 2015 key Key : HMGNV-WCYXV-X7G9W-YCX63-B98R2 Visual Studio Enterprise 2015 Key :HM6NR- ...

  9. 使用executor、callable以及一个Future 计算欧拉数e

    package test; import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMo ...

  10. RN 性能优化

    按需加载: 导出模块使用属性getter动态require 使用Import语句导入模块,会自动执行所加载的模块.如果你有一个公共组件供业务方使用,例如:common.js import A from ...