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;
    }
   });
  • 2019-12-30 10:17:21

    router-link传递参数,query

    在vue-router中,有两大对象被挂载到了实例this; $route(只读、具备信息的对象); $router(具备功能的函数) 查询字符串: 去哪里 ? <router-link :to="{name:'detail',query:{id:1}}"> xxx </router-link>

  • 2019-12-30 16:48:41

    vue provide/inject详解和用法

    父子组件交互方式多种,props、vuex、 、 emit、localStorage还有就是这个provide/inject了。它适合层级比较深的组件,比如子,子孙,子孙后代的组件有好几个用到父组件的某个属性,就可以用到这个provide/inject,它可以避免写大量繁琐的传值代码 我这里为什么要使用它? 我一个知识库详情父组件中包含了大量的子组件,每个子组件都需要父组件的知识库ID,这时候我不想写大量props,就用到provide/inject进行传值了

  • 2020-01-03 00:36:00

    break和continue详解for循环

    1. break:直接跳出当前循环体(while、for、do while)或程序块(switch)。其中switch case执行时,一定会先进行匹配,匹配成功返回当前case的值,再根据是否有break,判断是否继续输出,或是跳出判断(可参考switch的介绍)。 2. continue:不再执行循环体中continue语句之后的代码,直接进行下一次循环。