有两个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]
求教,
前些日子在做项目时,做到两个大LIST合并的问题,由于时间比较紧没有时间仔细琢磨一下效率问题。刚好从CSDN的论坛上看到此问题。 有两个LIST ArrayList <Integer> list1=new ArrayList <Integer>(); &n......
答案就在这里:两个LIST合并问题
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
有人吗, 求教啊 .
list1 : [10583601, 10584601]
list2 : [10583601, 10583611]
那么第一步获取的map为{[10583601: 1], [10583611:1]}
第二步:发现10583601存在list1中那么修改最后一位1为2, 10583611不存在list1中, 添加到list1中
最终结果:
list1 [10583602, 10584601, 10583611]
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);
}