我在做班组添加人员的例子。班组人员变动以后,需要将剔除出去的人员筛选出来
现在有两个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