【发布时间】:2021-04-15 09:25:25
【问题描述】:
我有对象列表,其中又包含列表对象。
List<User> users = ....;
List<Roles> roles=....;
我想遍历其中的用户和角色,并且需要将 user.department 与 role.department 列表进行比较。
User 类包含一个 Roles 列表,一个 Role 包含一个 Departments 列表,并且 User 还包含一个 Department 作为 String 类型。
我的业务逻辑不同,是这样的。为了便于理解,我以这个为例。
Optional<Role> matchedRole= users
.stream()
.flatMap(u -> u.getRoles().stream())
.filter(r -> r.getDepartmenList().contains(u.getDepartment())
.findFirst();
现在,我如何访问 u 和内部流? 提前致谢。
【问题讨论】:
-
所以你的
User类包含Roles 的列表,而Role包含Departments 的列表?而User还包含一个Department? -
这是正确的@MCEmperor,更新问题以供其他人理解。谢谢!!
-
你的例子能编译吗?在 u.getDepartment() id u 参数可访问?我不明白你想找到什么?
-
@SergeyAfinogenov 这无法编译,是的,U 不可访问,我的问题是如何访问它。基本上,我想要与用户部门相同的角色。
标签: java java-8 java-stream