日期:2014-05-20  浏览次数:20811 次

两个List比较的问题
我在做班组添加人员的例子。班组人员变动以后,需要将剔除出去的人员筛选出来

现在有两个list存放着人员对象,old里面存放的是以前的班组成员,现在我添加了用户4,5而去掉了用户2,3;
list old : user1,user2,user3

list new: user2,user4,user5

我想查出old里面的user2,user3,将他们的班组编号清空。可不知道怎么对比两个list。

希望大侠们,帮我看看。提供一些思路。谢谢大家了

------解决方案--------------------
removeAll
boolean removeAll(Collection<?> c)从列表中移除指定 collection 中包含的其所有元素(可选操作)。 

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

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