两个LIST>做比较(整个表的数据集),已经排好序。。发何进行matching处理

KUROCO 2016-06-12 04:03:36
Sring 字段名 Object 字段值

XML文件里面指定 具体哪两个字段(段值大小)做比较,

因为按照指定的比较字段的值大小已经排好序,想实现Match处理。

例如 比较的两个字段(值 )为M,N
if( l1.get(m)<l2.get(n))
{
直接插入DB
m++
}
if(l1.get(m)>l2.get(n))
{
直接插入DB
n++;
}
else
{ 比较后的值插入DB
compare();
m++;n++;
...全文
767 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
解开者 2016-06-12
  • 打赏
  • 举报
回复
看了半天才看懂……这不叫match,是merge吧 我理解你这个就是想得到一个包括所有元素的有序列表,而且不太重视效率 那其实有更简单的思路,先把所有元素放进一个List里,然后对这个List排序就行了,调用集合框架的排序方法
KUROCO 2016-06-12
  • 打赏
  • 举报
回复
自己也大概写了些。。中间部分不知道怎么写 public class Test { public void ListCompare(List list1,List list2){ List l1=new ArrayList(); List l2=new ArrayList(); for(int i=0;i<list1.size();i++){ Map<String,Object> map1=(Map)list1.get(i); for (String key : map1.keySet()) { System.out.println("Key = " + key); l1.add(key); } } for(int j=0;j<list2.size();j++){ Map<String,Object> map2=(Map)list1.get(j); for (String key : map2.keySet()) { System.out.println("Key = " + key); l2.add(key); } for(int m=0,n=0;m<l1.size() && n<l2.size();m++,n++){ if( l1.get(m)<l2.get(n)) { m++; } if(l1.get(m)>l2.get(n)) { n++; } else { compare(); } } if(m1<m2){//m1是比较先 m2是比较元 //m3 是要的那个值 }else if(m1<m2){ } else if(m1==m2) { } } if(l1.get(1).equals(l2.get(2))){ } } public static void main(String[] args) { Test test=new Test(); Map<String, String> map1 = new HashMap<String, String>(); map1.put("a", "1"); map1.put("b", "3"); map1.put("c", "5"); Map<String, String> map2 = new HashMap<String, String>(); map2.put("a", "2"); map2.put("b", "4"); map2.put("c", "6"); List<Map<String, String>> lm = new ArrayList<Map<String, String>>(); List<Map<String, String>> lm2 = new ArrayList<Map<String, String>>(); lm.add(map1); lm.add(map2); test.ListCompare(lm, lm2); } }
KUROCO 2016-06-12
  • 打赏
  • 举报
回复
也是迫于无奈,急着要代码。。不给学习的时间。。。求大大,施以援手
qq_15915835 2016-06-12
  • 打赏
  • 举报
回复
那还是找本书看看吧。照着书练,就算把这个代码给你实现了,那也不是你的不是。找本书先学学先。学会了,在来处理这个问题。
KUROCO 2016-06-12
  • 打赏
  • 举报
回复
JAVA入门状态。。。。不知道怎么来用代码实现。。。
qq_15915835 2016-06-12
  • 打赏
  • 举报
回复
你这逻辑不都有了吗,变成代码就可以了啊。有什么问题?不会写代码?
KUROCO 2016-06-12
  • 打赏
  • 举报
回复



如图两个表,以ID为比较字段
表1第一条值为01 < 表2为02
那么表1的01这条直接存入DB,并往下读一条。。表2的下标不动

表1读了下一条为03 > 表2为02
那么表2的01这条直接存入DB,并往下读一条。。表1的下标不动

这里表1没读,还是03 ==表2往下读了一条为03
然后他们做比较,比较后直接插入DB

因为一般指定复数个字段为比较字段,,,所以不会有重复
qq_15915835 2016-06-12
  • 打赏
  • 举报
回复
match处理是啥意思,处理啥?

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧