私の質問は少し複雑です(私は思う)、私は例を使用しようとします。あなたは私の問題を理解するでしょう。私が達成したい何Java 8ストリーム - コレクション内の同じIDを持つオブジェクトの操作
public class User{
private List<Car> cars;
}
public class Car{
private String code;
private List<Feature> features;
}
public class Feature{
private String code;
}
ユーザーのリストから、車のリストを取得することですが、私もこれを欲しい:どこ
List<User> users;
:
セットの私は、ユーザーのリストを持っていると言います(同じコードを持つ車はない)しかし、私は単一のCarオブジェクトに同じコードを持つ異なる車のすべての機能を持たせ、それが失敗する場所にしたい。今の
私は
List<Car> cars = users
.stream()
.flatMap(user -> user.getCars())
.???
を持っている私は述語を使用してコードで車をフィルタリングすることができます知っているが、私は私を残してのものに機能を追加するために苦しみました。ストリームでそれを行うためのきれいな方法はありますか?
「1台のCarオブジェクトに異なる車のすべての機能を持たせたい」というのは非常に普及している仕様なので、おそらく失敗します。 'Car'オブジェクトが他の車の特徴をどのように持ち、どのような機能について話しているのですか?実生活車と何か関係がありますか? – Holger
あなたは 'distinct()'を使うことができる方法がありますが、 'car.equals(car)'の場合にのみ機能しますが、equalsメソッドはカーコード – Ash
のためにしか機能しないようにする必要があります。コードをフィーチャにマップすること。 'Map>'は、車のリストではありませんが、必要な情報が必要です。 –
Ash