![](/img/trans.png)
[英]How to iterate over Map<String,String> and Map<String,Map<String,String>> using the same recursion function?
[英]How to Iterate over a String Array inside .map()
所以我在一个方法中有这些行 -
private List<String> buildLwaScopePermissionsList(final List<Permission> permissions) {
return Optional.ofNullable(permissions).orElse(Collections.emptyList())
.stream()
.map(Permission::getName)
.map(Permission.Name::getValues)
.collect(collectingAndThen(toList(), ImmutableList::copyOf));
}
where Permission is a class and Name is a static inner class inside Permission Class, and getName() is a non-static method inside Permission class and getValues() is a static method inside Name class. 问题是 getValues 方法返回一个字符串数组。 我无法从返回的值中取出 1 个项目并与 Name 连接并将其存储在列表中。
public static String[] getValues() {
return values.clone();
}
您可以使用flatMap
将多个值展平为一个 stream。
如果您有单个权限,则可以通过执行Arrays.stream(Permission.Name.getValues()).map(val -> permission.getName() + val)
获得串联名称的 Stream 。 通过使用flatMap
,您可以将所有这些值放入原始 Stream 中:
private List<String> buildLwaScopePermissionsList(final List<Permission> permissions) {
return Optional.ofNullable(permissions).orElse(Collections.emptyList())
.stream()
.flatMap(permission -> Arrays.stream(Permission.Name.getValues()).map(val -> permission.getName() + val))
.collect(collectingAndThen(toList(), ImmutableList::copyOf));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.