• List<Map>中根据某个属性去重,不重复的值则覆盖null


     /**
         *     根据map中的某个key 去除List中重复的map,如果值不为null,则覆盖空值
         * @author  shijing
         * @param list
         * @param mapKey
         * @return
         */
        public  List<Map<String, String>> removeRepeatMapByKey(List<Map<String, String>> 
               list){
            if (list.size()<=0) return null;
          //用于保存合并后的List数据
            List<Map<String,String>> listCopy = new ArrayList<Map<String,String>>();
    
            //遍历原始List
            for (Map<String, String> userInfo : list) {
                String time = (String) userInfo.get("time");
                String left = null;
                String middle =null;
                String right = null;
                if(userInfo.get("left")!=null) {
                    left = (String) userInfo.get("left");
                }
                if(userInfo.get("middle")!=null) {
                    middle = (String) userInfo.get("middle");
                }
                if(userInfo.get("right")!=null) {
                    right = (String) userInfo.get("right");
                }
                int j = 0;
                //遍历合并后的List
                for (Map<String, String> userInfoCopy : listCopy) {
                    String timeCopy = (String) userInfoCopy.get("time");
                    //根据Map的Key判断,如果已经存在,则把ItemName加入进去并且用逗号隔开
                    if(time.equals(timeCopy)) {
                        if(left!=null) {
                            userInfoCopy.put("left", left);
                        }
                        if(middle!=null) {
                            userInfoCopy.put("middle", middle);
                        }
                        if(right!=null) {
                            userInfoCopy.put("right", right);
                        }
                        j++;
                    }
                }
                //如果不存在,则把本条数据直接插入
                if(j == 0) {
                    listCopy.add(userInfo);
                }
            }
            return listCopy;
        }
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    easyui中的combobox小知识点~~
    nodejs+express+mysql 增删改查
    建库和表的脚本.sql
    linux服务器最大连接数
    java高级主题
    java线程池ThreadPoolExecutor
    关于Future
    git rebase
    bash shell for循环
    accept()出的socket不会使用新的端口号
  • 原文地址:https://www.cnblogs.com/KdeS/p/14307001.html
Copyright © 2020-2023  润新知