开发:随笔记录之 判断list和map相等,并合并等问题

/**

     * 根据特定规格,判断两个Map是否相等

     */

    private static boolean isEquals(Map<String, String> src, Map<String, String> dest, String[] samekey) {

        boolean equals = true;

        StringBuffer sbf_src = new StringBuffer();

        StringBuffer sbf_dest = new StringBuffer();

        for (int i = 0; i < samekey.length; i++) {

            sbf_src.append(src.get(samekey[i]));

            sbf_dest.append(dest.get(samekey[i]));

        }

        if (sbf_src.toString().equals(sbf_dest.toString())) {

            equals = true;

        else {

            equals = false;

        }

        return equals;

    }

    /**

     * 获得list中有没有相同的keyMap(待需找的map)<br>

     * 如果找到则返回这个list和keyMap相同Map的下标,否则返回-1

     */

    private static int getEqualsMap(List<Map<String, String>> list, Map<String, String> keyMap, String[] samekey) {

        int equalsIndex = -1;

        for (int i = 0; i < list.size(); i++) {

            Map<String, String> tempMap = list.get(i);

            if (isEquals(tempMap, keyMap, samekey)) {

                equalsIndex = i;

            }

        }

        return equalsIndex;

    }

    /**

     * 合并List中相同的Map

     *

     * @param list

     * @return

     */

    public static List<Map<String, String>> combineList(List<Map<String, String>> list, String[] samekey,String combinekey) {

        List<Map<String, String>> retList = new ArrayList<Map<String, String>>();

        for (int i = 0; i < list.size(); i++) {

            Map<String, String> tempMap = list.get(i);

            int equalsIndex = getEqualsMap(retList, tempMap, samekey);

            if (-1 == equalsIndex) {

                retList.add(tempMap);

            else {

                String custSrc = retList.get(equalsIndex).get(combinekey);

                int custSrcInt = Integer.parseInt(custSrc.substring(0, custSrc.length() - 1));

                String custTemp = tempMap.get(combinekey);

                int custTempInt = Integer.parseInt(custTemp.substring(0, custTemp.length() - 1));

                String destCust = (custSrcInt + custTempInt) + custSrc.substring(custSrc.length() - 1);

                retList.get(equalsIndex).put(combinekey, destCust);

            }

        }

        return retList;

    }

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-04 23:59:52

开发:随笔记录之 判断list和map相等,并合并等问题的相关文章

开发随笔记录

昨天别人给了同事一个简单的demo,问题是UITableViewController上有内有textfield的cell,在textfield被选中,弹出键盘,界面会自动滚动,就和我们平时做textfield输入时不要被键盘挡住那样的滚动.对方是想要不要这个自动滚动,因为那个demo滚动的位置不对,查了一下,发现不知道什么时候起,UITableViewController自动适配了这个需求,完成不滚动的要求只有两个做法:(1)把UITableViewController换成UIViewContr

UWP开发细节记录:判断文件类型

StorageFile.ContentType 属性,是 string 类型,用来表示文件内容的 MIME 类型.例如,音乐文件可能有 "audio/mpeg" MIME 类型.(MSDN) MIME 类型的定义可以下面的链接找到: MIME Types - http://blogs.msdn.com/b/jaimer/archive/2008/01/04/mime-types.aspx MIME 参考手册 - http://www.w3school.com.cn/media/medi

web开发随笔记录(一)

各种DOM元素的英文全称: div 语义:Division(分隔)span 语义:Span(范围)ol 语义:Ordered List(排序列表)ul 语义:Unordered List(不排序列表)li 语义:List Item(列表项目)dl 语义:Definition List(定义列表)dt 语义:Definition Term(定义术语)dd 语义:Definition Description(定义描述)del 语义:Deleted(删除(的文本))ins 语义:Inserted(插入

关于网上商城开发的随笔记录2

继续前一篇文章关于网上商城开发的随笔记录1,原文地址:http://www.cnblogs.com/zhankui/p/4580414.html 夏天长沙的天气十分闷热,又十分多变,所以忙了一下午,效率不高,只是对文档进行大篇幅的修改,参考大量购物网站,设计出了数据库模型,(看到这里是不是以为我要分享数据库了?不好意思,你又想多了),这里主要是讲用例图,老师说开发的时候客户是看不懂我们的专业术语的(简单来说就是学微软,吧所有的客户当白痴,简单化,当然这是很必要的),所以要让对方知道我们做出来过后

关于网上商城开发的随笔记录3

提示一下手机党慎入,多图! 关于网上商城开发的随笔记录1,原文地址:http://www.cnblogs.com/zhankui/p/4580414.html 关于网上商城开发的随笔记录2,原文地址:http://www.cnblogs.com/zhankui/p/4582046.html 因为使用的是oracle的数据库,所以需要新建一个,但是今天突然发现班上很多人都不会,所以,就写一写好了,与人方便,也是自己方便嘛,这个比较简单,但是还是有几点要注意的,请仔细看哦,走你┏ (゜ω゜)=? 桌

javascrpit开发连连看记录-小游戏

工作之余,总想做点什么有意思的东西.但是苦于不知道做什么,也就一直没有什么动作.在一个午饭后,跟@jedmeng和@墨尘聊天过程中,发现可以写一些小东西来练练手,有以下几点好处: 1. 加强巩固前端相关知识 2. 可以用一些平时项目中想用但没用的新东西 3. 一块儿做相同的东西,可以分享各自不同的想法 先来一张效果图,也可以来这里玩玩~      接下来就介绍一下做这个小游戏,自己的一些步骤和思路: 首先就是熟悉连连看的规则,为此还专门下载了一个app感受了一下,规则简单的说就是:找到两个相同的

开发随笔——NOT IN vs NOT EXISTS

原文:开发随笔--NOT IN vs NOT EXISTS 原文出处: http://blog.csdn.net/dba_huangzj/article/details/31374037  转载请引用 之前在论坛中见到一个针对in/exists的讨论,原帖懒得找了,这里介绍一下最近的学习小结: NOT IN和NOT EIXTS在对允许为null的列查询时会有一定的风险.特别是NOT IN,如果子查询包含了最少一个NULL,会出现非预期的结果.下面做一个演示. IF OBJECT_ID('Ship

博客园客户端(Universal App)开发随笔 – App也需要物流前的打包

想起来一个笑话:唐僧一行千辛万苦来到佛祖面前,准备取经,佛祖轻声问了一句:汝等带U盘了吗?师徒4人立刻昏倒在地.好吧,扯远了,不过是想告诉大家准备工作一定要到位. Universal App 的打包发布其实与传统的 Windows Phone / Windows Store App 项目并无太大不同,但是鉴于总有人会在这些步骤中遇到问题,而且即使是发布过几个应用的开发者也不例外,所以对这个看起来比较繁琐的过程做一个小结还是必要的. 打包前的准备工作 1. 修改编译模式 在调试程序时,我们通常会选

个人前端工程师开发工具记录

原文地址:https://www.zybuluo.com/yyman001/note/58799 个人前端工程师开发工具记录 我们前端,每个人都有自己的开发工作环境,工具等,所以我写了这一篇文章,为自己方便把自己常用的前端工具记录下来,以便到时候在新的电脑上可以快速搭建自己熟悉的工作环境和使用自己熟悉的工具,同时可能也会对你有少少的帮助吧! 前端环境软件安装 node.js 很多东西都需要它 npm , cnpm , spm 安装可以更换淘宝的安装包地址(淘宝镜像) Ruby(git依赖) ,