私はマップを持っています。のは、各列車は、私はマップを反復処理し、少なくとも一つの青色の部分を持っているすべての列車を収集する別のリストJavaストリーム - リストの少なくとも1つの要素に別の要素が含まれていることを確認してください
List<Integer> blueParts;
を持っているリスト
List<Integer> parts = train.getTrainParts()
を持って
Map<Long, Train>
を言ってみましょう。
これはStream
秒の素朴な使い方です:
trainMap().values().stream().filter(part -> {
boolean found = false;
for (Long part : train.getTrainParts()) {
if (blueParts.conatins(part)) {
found = true;
}
}
return found;
).collect(Collectors.toList());
より良いオプションは何ですか? ストリームまたはストリームしない?
tagDataContainer.getDeliveryGroupMap().values().stream().filter(dg -> {
Sets.SetView<Long> intersection = Sets.intersection(Sets.newHashSet(dg.getPlacements()), Sets.newHashSet(placementsToChangeStatusToPublish));
return intersection.size()>0;
}
);
「パーツ」は整数ですか?興味深いアプローチ;-) – GhostCat
これは例です。 Idsは部品を指しています。 – Jeb