2つの異なるオブジェクトに基づいて新しいオブジェクトを作成する最適な方法は何ですか。Javaストリームは、2つの異なるオブジェクトに基づいて新しいオブジェクトを作成します。
私はjavaストリームを使いたいと思います。
私の2つのスタートは、私が結果オブジェクトの配列を取得したいと私は
List<EventA> eventAList;
List<EventB> eventBList;
のような2つのオブジェクトの配列を持っている
public class EventA{
Long id;
String name;
...
Long locationID;
}
public class EventB{
Long id
String Name;
...
Long locationID;
}
そして、私の結果クラス
public class Result{
Long locationID;
String eventAName;
String eventBName;
public Result(...){...}
}
オブジェクト。すべてイベントAの名前をresultListにコピーする必要があります。同じ場所にイベントBが存在する場合は、この名前をeventBNameに保存したいと考えています。
私がこれまで行ってきたすべてが、私はコンストラクタにEventBから値を渡す方法がわからない
List<Result> resultList = eventAList.stream().map(e -> new Result(e.locationID, e.name, null)).collect(Collectors.toList());
ある
をeventBlistためのマップを作成し、彼らは実質的に同一のプロパティを表示するので、あなただけの、 'EventA'と' EventB'に共通の祖先を持っていないことはできますか? 'List'をストリームして... –
Mena
いいえ、私の例を単純化するだけです。実際には全く異なっています –
「同じ場所にいる」とはどういう意味ですか?同じ 'locationID'または' 'eventAList'と' eventBList'の同じインデックスにありますか? –