尝试将一组索引映射到列表中的相应对象,然后作为一组返回。
List aList = Arrays.asList(new Object(), new Object(), new Object(), new Object(), new Object(), new Object());
Set.of(0, 2, 3)
.stream()
.flatMap(index -> aList.get(index)) // error on this line
.collect(Collectors.toSet());
Error message: no instance(s) of type variable(s) R exist so that Object conforms to Stream<? extends R>
答案 0 :(得分:1)
在此示例中,您需要map
,而不是flatMap
。当原始flatMap
的每个元素映射到多个元素时,将使用Stream
。
Set.of(0, 2, 3)
.stream()
.map(index -> aList.get(index))
.collect(Collectors.toSet());
编辑:您的更新问题使我的替代建议过时了,但是其余代码段仍然有效。