我有两个不同大小的清单,属于同一个 class Officer
具有以下属性:
Integer id;
Integer level;
String role;
我想比较这两个列表list1和list2,以便生成两个新的列表insertlst和deletelist。
列表1和列表2都包含唯一的元素。
insertlst:此列表包含list1中的项,而不包含list2中的项。
deletelist:此列表包含列表2中的项,而不包含列表1中的项。
我不知道该怎么做,可能是使用org.apache.commons.collections.collectionutils api。
你能给我推荐一个生成这两个列表insertlst和deletelist的java代码吗?
4条答案
按热度按时间kyvafyod1#
如果您想使用org.apache.commons.collections.collectionutils,那么应该使用subtract方法。
或者您可以这样编写(传递方法中填充的空列表)以不向依赖项添加另一个库:
别忘了在这两种情况下重写equals和hashcode方法。请参阅这里的解释
vojdkbi02#
确保您的
Officer
类重写equals()
(和hashCode()
)方法,它将非常简单:ecfdbz9o3#
编辑:正如jlordo所说,确保重写hashcode和equals
fruv7luv4#
你必须循环浏览这两个列表。。。。
一种方法是:
业务逻辑部分由您决定。。。你可以比较两个列表之间的数据,并决定什么去哪里。。。
希望这有帮助