我在做班组添加人员的例子。班组人员变动以后,需要将剔除出去的人员筛选出来现在有两个list存放着人员对象,old里面存放的是以前的班组成员,现在我添加了用户4,5而去掉了用户2,3;
list old : user1,user2,user3list new: user2,user4,user5我想查出old里面的user2,user3,将他们的班组编号清空。可不知道怎么对比两个list。希望大侠们,帮我看看。提供一些思路。谢谢大家了

解决方案 »

  1.   

    removeAll
    boolean removeAll(Collection<?> c)从列表中移除指定 collection 中包含的其所有元素(可选操作)。 指定者:
    接口 Collection<E> 中的 removeAll
    参数:
    c - 包含从此列表中移除的元素的 collection 
    返回:
    如果此列表由于调用而发生更改,则返回 true 
    抛出: 
    UnsupportedOperationException - 如果列表不支持 removeAll 操作 
    ClassCastException - 如果此列表中的元素的类和指定的 collection 不兼容(可选) 
    NullPointerException - 如果此列表包含一个 null 元素,并且指定的 collection 不允许 null 元素(可选),或者指定的 collection 为 null
      

  2.   

    有两个方法配合使用就可以搞定啦:
    list1.removeAll(list2): 差 list1-list2
    retainAll: 交 list1 倒U list2