Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 嵌套列表的集合_Java_List_Java Stream - Fatal编程技术网

Java 嵌套列表的集合

Java 嵌套列表的集合,java,list,java-stream,Java,List,Java Stream,我正在尝试将Java8特性用于嵌套列表 我有一个物品清单。对象有一个列表字段。我需要获取该列表的值,并将其添加到另一个列表中 List<String> strings = new ArrayList<>(); strings.add("s1"); strings.add("s2"); List<Foo> foos = new ArrayList<>(); foos.add(new Foo(strings)); 我想要一个这样的新列表: List

我正在尝试将Java8特性用于嵌套列表

我有一个物品清单。对象有一个列表字段。我需要获取该列表的值,并将其添加到另一个列表中

List<String> strings = new ArrayList<>();
strings.add("s1");
strings.add("s2");

List<Foo> foos = new ArrayList<>();
foos.add(new Foo(strings));
我想要一个这样的
新列表

List newList=因此
s1
s2
,来自
字符串的
列表将显示在
newList

使用
flatMap
。替换:

.map(Foo::getStrings)


两者都显示
不兼容的类型。必需列表,但flatMap被推断为流:不存在类型为R的实例,因此流符合列表
。错误。@ENIS您是否已将
newList
的类型从
List
更改为
List
?是的,我更改了。我尝试了这种方法,它是有效的:
userRoles.stream().map(RoleDTO::getPrivileges).flatMap(Collection::stream.collector(Collectors.toList())
但是这部分
.flatMap(Collection::stream).collect(Collectors.toList())
看起来不太好。@如果API就是这样定义的,您就不能更改that@Lino那么有两个集合就可以了?我觉得这不对。谢谢
.map(Foo::getStrings)
.flatMap(f -> f.getStrings().stream())
.map(Foo::getStrings).flatMap(Collection::stream)