当前位置: 首页 > 知识库问答 >
问题:

使用java8映射对象

仲孙夕
2023-03-14

假设我有一个Foo对象列表。Foo上有一个属性,我必须使用它从数据源中获取Bar对象。然后我必须将每个bar对象映射回我得到bar的原始Foo对象。

public class Foo {
   int barId;
}

public class Bar {
   int barId;
}

Set<Foo> inputFoo;
Map<Bar, Foo> barToFoo;

public Bar getBar(int barId);

我的尝试如下:

List<Bar> allBarsInFoo = inputFoos.stream()
.map(Foo::barId)
.forEach(b -> getBar(b))

共有1个答案

景稳
2023-03-14

我认为collectors.tomap()就是您要查找的内容:

Map<Bar, Foo> barToFoo = inputFoo.stream()
        .collect(Collectors.toMap(f -> getBar(f.barId), Function.identity()));
 类似资料: