List<Map>集合根据Map里某个key对List集合重新排序介绍

2018-03-20 14:35:10

例1:List集合数据参考形式如下:

[{GLXXLX=03,GLXXBH=20160226105812003},{GLXXLX=01,GLXXBH=20160226105812001},{GLXXLX=02,GLXXBH=20160226105812002}]

现在想按照GLXXLX从大到小或者从小到大进行排序,做法如下:

//对list进行重新按照glxxlx进行升序-从小到大if (null != list&& list.size()>0) {
        Collections.sort(list,new Comparator<Map>() {
        @Override        public int compare(Map o1, Map o2) {            int ret = 0;            //比较两个对象的顺序,如果前者小于、等于或者大于后者,则分别返回-1/0/1
            ret = o1.get("GLXXLX").toString().compareTo(o2.get("GLXXLX").toString());//逆序的话就用o2.compareTo(o1)即可
            return ret;
        }
    }); 
}123456789101112

例2:List集合数据参考形式如下:

[{TIME=20160221,CONTENT=测试内容1},{TIME=20160222,CONTENT=测试内容2},{TIME=20160223,CONTENT=测试内容3}]

现在想按照时间TIME降序,将最新的时间放在前面,做法如下:

//对sjzList 进行重新按照time进行降序排列
  if (null != sjzList && sjzList.size()>0) {
   final SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
   Collections.sort(sjzList,new Comparator<Map>() {
    @Override    public int compare(Map o1, Map o2) {     int ret = 0;     try {      //比较两个对象的顺序,如果前者小于、等于或者大于后者,则分别返回-1/0/1
      ret = df.parse(o2.get("TIME").toString()).compareTo(df.parse(o1.get("TIME").toString()));
     } catch (ParseException e) {
      e.printStackTrace();
     }     return ret;
    }
   });
  • 2017-01-17 15:42:03

    vue-cli 发布(译)

    当我们真正开发一个应用的时候,我们不可避免的会用到一大堆的工具,模块化、预处理器、热模块加载、代码校验和测试。这些工具对于一个需要长期维护的大型应用是必须的,但是项目初始化将会是让人痛苦的事情。这就是为什么我们做了 vue-cli 。

  • 2017-01-19 00:45:56

    nodejs之process进程

    虽然node对操作系统做了很多抽象的工作,但是你还是可以直接和他交互,比如和系统中已经存在的进程进行交互,创建工作子进程。node是一个用于事件循环的线程,但是你可以在这个事件循环之外创建其他的进程(线程)参与工作。

  • 2017-01-19 01:05:32

    process对象

    process对象是Node的一个全局对象,提供当前Node进程的信息。它可以在脚本的任意位置使用,不必通过require命令加载。该对象部署了EventEmitter接口。

  • 2017-01-20 21:59:11

    WEBPACK DEV SERVER

    webpack-dev-server是一个小型的node.js Express服务器,它使用webpack-dev-middleware中间件来为通过webpack打包生成的资源文件提供Web服务。它还有一个通过Socket.IO连接着webpack-dev-server服务器的小型运行时程序。