使用Java流迭代集合集合集合?
如何使用Java8流API重构此代码使用Java流迭代集合集合集合?,java,collections,java-8,java-stream,Java,Collections,Java 8,Java Stream,如何使用Java8流API重构此代码 for (Role role: user.getRoles()) { for (Privilege privilege: role.getPrivileges()) { System.out.println(privilege.getName()); } } 试着这样做: user.getRoles().stream() .map(role -> role.getPrivileges())
for (Role role: user.getRoles()) {
for (Privilege privilege: role.getPrivileges()) {
System.out.println(privilege.getName());
}
}
试着这样做:
user.getRoles().stream()
.map(role -> role.getPrivileges())
.forEach(privelege -> System.out.println(privelege.getName()));
您可以组合并:
您已经尝试编写了哪些代码?在本例中,一个无流的
user.getRoles().forEach(role->role.getPrivileges().forEach(p->System.out.println(p.getName());
也可以。
user.getRoles()
.stream()
.flatMap(role -> role.getPrivileges().stream())
.map(Privilege::getName)
.forEach(System.out::println)