开发者社区> 问答> 正文

java List合并相同的项的问题?

List合并相同的项的问题?
5月15日 上海 OSC 源创会 开始报名~!>>> »

表A:
DM 版面 类型 总数量 已使用 空闲
金点子 封面 彩板 5 1 4
金点子 封面 彩板 5 1 4
金点子 封面 彩板 5 1 4
金点子 封面 彩板 5 1 4

金点子 头版 信息版 8 1 7
金点子 头版 信息版 5 1 4
金点子 头版 信息版 12 1 11

表B
DM 版面 类型 总数量 已使用 空闲
金点子 封面 彩板 20 4 16
金点子 头版 信息版 25 3 22

如上所示,要将表A合并成表B,也就是把将DM、版面、类型相同的列进行合并,总数量、已使用、空闲进行累加合并成一条数据,在程序中怎么实现?
其中表A存储在List中

展开
收起
小旋风柴进 2016-03-05 12:55:00 2230 0
1 条回答
写回答
取消 提交回答
  • 提供一种程序实现的思路 具体还的你自己修改·

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
     
     
    public class Test {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            Map<String,String[]> map=new HashMap<String,String[]>();//存放叠加的数据
            List<String[]> list=new ArrayList<String[]>();//数据list
            list.add(new String[]{"金点子","封面","彩板","5","1","4"});
            list.add(new String[]{"金点子","封面","彩板","5","1","4"});
            list.add(new String[]{"金点子","封面","彩板","5","1","4"});
            list.add(new String[]{"金点子","封面","彩板","5","1","4"});
            list.add(new String[]{"金点子","头版","信息版","8","1","7"});
            list.add(new String[]{"金点子","头版","信息版","5","1","4"});
            list.add(new String[]{"金点子","头版","信息版","12","1","11"});
            for(String[] strs : list){//循环数据
                String[] strTemp=map.get(strs[1]);//判断是否已存在
                if(strTemp!=null){//存在就数据相加
                    strTemp[3]=(Integer.parseInt(strTemp[3])+Integer.parseInt(strs[3]))+"";
                    strTemp[4]=(Integer.parseInt(strTemp[4])+Integer.parseInt(strs[4]))+"";
                    strTemp[5]=(Integer.parseInt(strTemp[5])+Integer.parseInt(strs[5]))+"";
                }else{//不存在就添加数据
                    map.put(strs[1], strs);
                }
            }
            //迭代输出结果
            System.out.println("DM\t版面\t类型\t总数量\t已使用\t空闲");
            for(String key : map.keySet()){
                String[] strTemp=map.get(key);
                System.out.println(strTemp[0]+"\t"+strTemp[1]+"\t"+strTemp[2]+"\t"+strTemp[3]+"\t"+strTemp[4]+"\t"+strTemp[5]);
            }
        }
    }
    
    2019-07-17 18:53:12
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载