`
bruce198
  • 浏览: 233278 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

合并两个“list”

 
阅读更多

从数据库中查询出记录,然后以对象的形式封装到List中去。此时假设有两个条件A和B,满足A的记录集和为ListA,满足B的记录集合为ListB,现在要将ListA和ListB合并为一个List,注意ListA和ListB中可能有重复的记录(因为可能某条记录即满足条件A又满足条件B),要过滤掉重复的记录。

方法过程:假设List中存放的对象都是Order对象,属性orderId用于标识一个唯一的Order对象

  1. List<order></order> list = new ArrayList<order></order>();   
  2.   
  3.           if(ListA!=null){   
  4.   
  5.             Iterator it= ListA.iterator();   
  6.   
  7.             while(it.hasNext()){   
  8.   
  9.                 list.add((Order)it.next());   
  10.   
  11.             }   
  12.   
  13.          }   
  14.   
  15.  if(ListB!=null){   
  16.   
  17.             Iterator it= ListB.iterator();   
  18.   
  19.             while(it.hasNext()){   
  20.   
  21.               Order o=(Order)it.next();   
  22.   
  23.               if(list.contains(o))   
  24.   
  25.                   list.add(o);   
  26.   
  27.             }   
  28.   
  29.          }   
  30.   

首先将ListA中的对象全部装入到list中,然后在装入ListB中对象的

          时候对ListB中的每个元素进行一下判断,看list中是否已存在该元素,这里我们使用List接口的contains()方法。它的原理是这样的:如上例中的 list.contains(o),系统会对list中的每个元素e调用o.equals(e),方法,加入list中有n个元素,那么会调用n次o.equals(e),只要有一次o.equals(e)返回了true,那么list.contains(o)返回true,否则返回false。因此为了很好的使用contains()方法,我们需要重新定义下Order类的equals方法,根据我们的业务逻辑,如果两个Order对象的orderId相同,那么我们认为它们代表同一条记录,于是equals方法定义如下:

  1. public boolean equals(Object obj) {   
  2.   
  3.              if (this == obj)   
  4.   
  5.                  return true;   
  6.   
  7.              if (obj == null)   
  8.   
  9.                  return false;   
  10.   
  11.              if (getClass() != obj.getClass())   
  12.   
  13.                  return false;   
  14.   
  15.              final Order other = (Order) obj;   
  16.   
  17.               if(this.getOrderid()!=other.getOrderid())   
  18.   
  19.                  return false;   
  20.   
  21.              return true;   
  22.   
  23.         }   
  24.   

这样只要ListB中有一条记录的orderId和list中的某条记录的orderId

相等,就认为该记录已存在,不再将它放入list,这样就避免了重复记录的存在。

分享到:
评论
1 楼 javaliujie 2009-02-11  
这个页面怎么这样子?

相关推荐

    java合并LIST

    遇到合并两个LIST的问题,自己用JAVA语言写出来,将代码粘贴成文档

    如何基于Python按行合并两个txt

    合并前第一个文件和第二个文件 代码 file1 = open(my.txt,r) file2 = open(ids.txt,r) file1_lists =file1.readlines() file2_lists =file2.readlines() file3_list = [] file4_list = [] for i in file1_lists: ...

    Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并

    Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并 Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并

    Python中将两个或多个list合成一个list的方法小结

    python中,list这种数据结构很常用到,如果两个或者多个list结构相同,内容类型相同,我们通常会将两个或者多个list合并成一个,这样我们再循环遍历的时候就可以一次性处理掉了

    Java将2个List集合合并到一个List里面并排序工具类

    Java将2个List集合合并到一个List里面并排序工具类 1、Java编程资源,定义了一个名为`ListMerger`的工具类,主要包含一个名为`mergeAndSortLists`的静态方法。此方法用于将两个已经根据时间顺序排列的List合并成一...

    将两个链表的合并实验报告

    合并两个链表:设A与B分别为两个带有头结点的有序循环链表(所谓有序是指链接点按数据域值大小链接,本题不妨设按数据域值从小到大排列),list1和list2分别为指向两个链表的头指针。请写出将这两个链表合并为一个...

    python实现两个字典合并,两个list合并

    今天小编就为大家分享一篇python实现两个字典合并,两个list合并,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    go合并两个有序列表

     将两个有序链表合并为一个新的有续链表并返回。新链表是通过拼接给定的两个链表的所有节点做成的。 思路: 1、如果给定的两条链表中有一条为空,返回另一条即可 2、若两条链表都不为空,则在两条链表中选择较小的...

    合并两个有序链表的方法是什么.rar

    两个有序链表的合并pta 解法1:迭代思路:首先创建一个 pre_head 节点,并用 cur 指针指向它,这个 pre_head 用于之后指向 list1 和 list2 中的第一个节点,而不是指向新生成的节点,因此空间复杂度为O(1)。接下来...

    用sortedlist,vsto合并两份excel

    网上找了好久,都没有具体用sortedlist合并excel的实例,自己写了一个,还用了vsto,希望能给初学者提供帮助&gt;.

    python实现合并多个list及合并多个django QuerySet的方法示例

    本文实例讲述了python实现合并多个list及合并多个django QuerySet的方法。分享给大家供大家参考,具体如下: 在用python或者django写一些小工具应用的时候,有可能会遇到合并多个list到一个 list 的情况。单纯从技术...

    合并K个升序链表(以合并两个有序链表为基础)1

    示例 2:输出:[]示例 3:输出:[]* Definition for singly-linked list.//以合并两个有序链表为基础ListNode*

    详解Java8合并两个Map中元素的正确姿势

    主要介绍了详解Java8合并两个Map中元素的正确姿势,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Python实现合并两个列表的方法分析

    本文实例讲述了Python实现合并两个列表的方法。分享给大家供大家参考,具体如下: 浏览博客看到一个问题:如何合并两个列表,今天就来探讨一下。 方法一 最原始,最笨的方法,分别从两个列表中取出所有的元素,再放...

    java 实现多个list 合并成一个去掉重复的案例

    主要介绍了java 实现多个list 合并成一个去掉重复的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    两个有序链表序列的合并-收藏学习.docx

    要合并两个有序链表,可以按照以下步骤进行: 1. 创建一个新的链表作为合并后的结果。 2. 遍历两个有序链表,比较它们的节点值。 3. 每次选择较小的节点值,将其插入到新链表中,并移动指针到下一个节点。 4. 当...

    集合合并代码

    System.out.println("合并前值:&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"+lst.size()); printLst(lst); // UserBean bbb=null; for(int i=0;i();i++) { UserBean b=(UserBean)lst.get(i); String s=b....

    python实现两个一维列表合并成一个二维列表

    我就废话不多说了,直接上代码吧!...以上这篇python实现两个一维列表合并成一个二维列表就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:python二维

    判断List和Map是否相等并合并List中相同的Map

    今天小编就为大家分享一篇关于判断List和Map是否相等并合并List中相同的Map,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

Global site tag (gtag.js) - Google Analytics