java-两个list去重并合并的问题

问题描述

两个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]

求教

解决方案

? 前些日子在做项目时,做到两个大LIST合并的问题,由于时间比较紧没有时间仔细琢磨一下效率问题。刚好从CSDN的论坛上看到此问题。?? 有两个LIST????? ArrayList <Integer> list1=new? ArrayList <Integer>();?&n......
答案就在这里:两个LIST合并问题

解决方案二:
有人吗 求教啊 .

解决方案三:

  1. 遍历list2中数据 将数据存储到map中 key为list2中的数据 value为key在list2中出现的次数
  2. 遍历map中的数据 如果map的key存在list1中 那么将这个数的最后一位改为map的value+1 如果不存在将key值添加到list1中例如:

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(010583601"");
newList2.add(110584601"");
newList3.add(010583601"");
newList3.add(110583611"");

    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()-1test.length()));           //newList2.add(String.valueOf(t+s));        }else {            newList2.add(newList3.get(i));        }    }    newList.addAll(newList2);    for (String list :newList) {        System.out.println(list);    }
时间: 2024-10-31 19:50:32

java-两个list去重并合并的问题的相关文章

Java线程:线程的调度-合并

join为非静态方法,定义如下: void join() 等待该线程终止. void join(long millis) 等待该线程终止的时间最长为 millis 毫秒. void join(long millis, int nanos) 等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒. /** * Java线程:线程的调度-合并 * * @author leizhimin 2009-11-4 9:02:40 */ public class Test { public st

关于java两个数取模的问题

问题描述 关于java两个数取模的问题 public class Test { public static void main(String [] args) { int b=5a=3; System.out.println(a%b); } } 为什么输出结果为3,而不是0? 解决方案 3除以5,商0余3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 解决方案二: a%b = 3 a/b = 0. % 取模,也就是取余数,a = 3 b=5 a%b = 3%5=0

JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ?

问题描述 JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ? JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ?刚写了个程序发现存在这个问题,原以为这种概率不会太高,但还是存在,怎么解决?谢谢 解决方案 其实和进程互斥的原理应该是一样的吧,在某一服务器访问该公共表的时候加锁,并同步更新数据至所有可达服务器,这样别的服务器也有访问请求时,就会等锁解开再进行.加锁的服务器程序应负责在释放资源后解锁. 解决方案二: 情况是这样的,现在

用jxl把两个excel的sheet合并成一个excel

问题描述 怎样用jxl把两个excel的sheet合并成一个excel 解决方案 解决方案二:可以用importsheet()方法

java 导出 excel 相同数据行合并

问题描述 java 导出 excel 相同数据行合并 到出的数据中,如何合并相同的数据行,格式如下:这段方法具体怎么写,请帮忙指教! 解决方案 http://jie-bosshr.iteye.com/blog/1966100 解决方案二: GridView合并相同数据的行

由于本人函授本科,期末JAVA两题编程不会写,楼主只会C。望高手们帮忙一下,明早一大早就要考试了,坐等

问题描述 某商场10年店庆活动,规定消费金额500元以上的部分可以给予95折,消费1000元以上的部分可以给予9折,消费2000元以上的部分可以给予85折.现要求设计一个程序,要求根据用户从键盘输入的商品总价计算出折后价.要求输出格式为:=======================原价:600.00元折后价:595.00元=======================设有一个四位数,它的四位数字分别是ABCD,而其又满足一下条件:ABCD*9=DCBA,试编写一段小程序计算这个四位数究竟是多少

php-想把两个数组用PHP合并成一个怎么做?(我是PHP菜鸟,望回答!)

问题描述 想把两个数组用PHP合并成一个怎么做?(我是PHP菜鸟,望回答!) 例如: 数组A ={['1001','A'],['1002','B'],['1003','C']} 数组B ={['1001','A','01'],['1002','B','02'],['1003','C','03'],['1001','A','04']} 想得到的结果是: 数组C={['1001','A','01,04'],['1002','B','02'],['1002','B','03']} 解决方案 追加合并用

webService java两个项目 项目A 中传中文到项目B中 B项目不做任何修改 怎么能实现

问题描述 java两个项目 项目A 中传中文到项目B中 B项目不做任何修改 怎么能实现 解决方案 这个和普通web应用类似的http://www.iteye.com/topic/1121242#2322208你是用什么实现的webservice?比如cxf 可以看这个http://penghuaiyi.iteye.com/blog/570359解决方案二:最近发现提问者对问题描述的太乱了,根本不知道想提问啥.java两个项目 项目A 中传中文到项目B中 B项目不做任何修改 怎么能实现你的这句话可

java两种单例模式用法分析_java

本文实例讲述了java两种单例模式用法.分享给大家供大家参考,具体如下: 按照加载方式的不同,单例模式有两种实现: private:只能在同一个类中使用 static:该类是类方法,不能调用实例方法./类全局变量 final:方法或成员变量不能被修饰 1.饿汉式 public class EagerSigleton{ private static final EagerSigleton instance=new EagerSigleton(); private EagerSigleton(){}