开发者社区> 问答> 正文

list去重并合并的问题

有两个List list1 list2
list1 : [10583601, 10584601]
list2 : [10583601, 10583611]
每个元素前7位为标识位 最后一位为数量 ,
list1位基础 如果list2中的元素在list1中存在 则修改list1中的数量 ,(比如10583601在list1中存在
也在list2中存在, 则把list1中的10583601改为10583602).如果不存在,则往list1中添加该元素
最后得出的结果应该是 list1 [10583602, 10584601, 10583611]
求教,

展开
收起
蛮大人123 2016-06-12 10:47:55 2680 0
2 条回答
写回答
取消 提交回答
  • 放set里,如果有顺序就linkedHaseSet

    2019-07-17 19:33:26
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪
    ArrayList newList=new ArrayList ();
    ArrayList newList2=new ArrayList ();
    ArrayList newList3=new ArrayList ();
    newList2.add(0,"10583601");
    newList2.add(1,"10584601");
    newList3.add(0,"10583601");
    newList3.add(1,"10583611");
    
        for(int i = 0; i < newList3.size(); i++) {
                        //判断newList2中有没有newList2里重复数据,true:将原来删除,修改+1库存  false:直接add
                        //假设你这里的库存数量是 2+2 =4的要求,取消掉注释,将原来注释掉 
            if(newList2.contains(newList3.get(i))) {
                String test = newList3.get(i);
                int t=Integer.parseInt(test);
                newList2.remove(test);
                newList2.add(String.valueOf(t+1));
                                //int s=Integer.parseInt(test.substring(test.length()-1,test.length()));
               //newList2.add(String.valueOf(t+s));
            }else {
                newList2.add(newList3.get(i));
            }
        }
        newList.addAll(newList2);
        for (String list :newList) {
            System.out.println(list);
        }
    2019-07-17 19:33:26
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载