gpt4 book ai didi

java - 使用java8映射对象

转载 作者:行者123 更新时间:2023-12-01 21:14:54 26 4
gpt4 key购买 nike

假设我有一个 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))

我不知道如何在上面之后不做更多繁重和不必要的操作的情况下获取 Bar 到 Foo 的 map 。

编辑:为了使我的问题更普遍,有没有一种方法可以保留对原始对象的引用,在原始对象列表之外的流中执行一堆过滤/映射操作,然后映射原始对象的结果filter/map 作为键,原始对象作为结果映射的值?

最佳答案

我认为 Collectors.toMap() 就是您正在寻找的:

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

关于java - 使用java8映射对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40412478/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com