【发布时间】:2017-06-12 12:48:31
【问题描述】:
使用以下方法成像对象:
class A { List<B> getIds(){...} }
现在我有一个集合 A 作为输入; 我想从中获取一组唯一的 ID,通常你会选择:
Set<B> ids = new HashSet<>();
for(A a : input){
ids.addAll(a.getIds());
}
有没有办法使用流 API 在一行中做同样的事情,如下所示
Set<List<B>> set = input.stream().map((a) -> a.getIds()).collect(Collectors.toSet());
但是制作扁平的B组
【问题讨论】:
-
为什么问题被标记为重复?我知道问题和答案非常相似,但是 Set 和 List 不是一回事。
标签: java collections java-stream