SupCube

  • 主页
  • 随笔
所有文章 友链 关于我

SupCube

  • 主页
  • 随笔

Java两个集合取差集

2020-03-21 阅读量7394

在java开发过程中我们往往会遇到对两个集合取交集操作。譬如如下场景:

在权限管理中我们选择一个用户对用户菜单权限进行选择然后统一保存。我们的操作往往是这样的:

第一步:移除当前用户现有权限。

第二步:新增所选择的权限。

但是这样似乎并不是很理想,有时候我们对权限根本没有任何操作或者做很少的改动我们就需要全部移除,然后全部新增。

我推荐操作方法如下:

如果选择的菜单权限集合成为listA,当前用户所有的权限集合为listB。

我们只需删除:listB和listA的差集。新增listA和listB的差集即可。那如何操作呢?

两层循环判断?太繁琐,java8提供的Stream即可很好解决如下:

List<UserPower> listCreate= listA.stream().  filter(a-> listB.stream().allMatch(b-> !a.getPowerId().equals(b.getPowerId()))).collect(Collectors.toList());

如上代码即可获得listA-listB方便,快捷;


赏

谢谢你请我吃糖果

支付宝
微信

扫一扫,分享到微信

微信分享二维码
mysql安全模式(safe_updates)
ArrayList 与 LinkList 比较
京公网安备11011102002544 © 京ICP备2024068849号-1
智汇魔方:http://www.supcube.com
  • 所有文章
  • 友链
  • 关于我
  • 切水果
  • json格式化
  • 自动分组
  • 集合差集