私はFooオブジェクトのリストを持っているとしましょう。 Fooには、データソースからBarオブジェクトを取得するために使用する必要があるプロパティがあります。私はBarオブジェクトを元のFooオブジェクトにマップする必要があります。java8を使ったオブジェクトのマッピング
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))
私は上記の後、より重いと不必要なオペレーションを行うことなく、fooへのバーのマップを取得する方法がわかりません。
編集:私の質問をもっと一般的にするには、元のオブジェクトへの参照を保持し、元のオブジェクトのリストから離れたストリームで一連のフィルタ/マップ操作を実行し、キーとしてフィルター/マップ、結果のマップの値として元のオブジェクト?
重く不必要な計算については、ご注意ください。 Javaでは、計算の数はタイピングの量と密接に関連していません。ソリューションを書くのが短くても、ベンチマークではなくパフォーマンスが良いとは思わないでください。 Javaが最適化しなければならないすべての機会で、ベンチマークだけがどのアプローチがより速いかを本当に教えてくれるでしょう。 –