デレク・ジョーンズ:
私はのリスト考えてみましょうToFilter
外観は次のようにというオブジェクトを:
private class ToFilter {
String option1;
String option2;
}
Javaを使用して、私はとToFilterの4つのインスタンスがある場合、たとえば、オプション1は、他のオブジェクトのオプション2.そうに含まれていないすべての要素をフィルタリングしたいストリーム:
option1 = C,
option2 = A
option1 = C,
option2 = F
option1 = A,
option2 = B
option1 = A,
option2 = D
Cを濾過し、それがのエントリ持っているので、結果セットに含まれるべきでoption1
はなく、option2
他のオブジェクトのを。以下のような何かがnonematch()
、それは実際のリストを返すToFilter
というだけで、ブール真よりもオブジェクトを。
ernest_k:
私はすべてのセットの作成、2つのストリームを使用することになりoption2
、私がチェックし、それに対して値option1
のコレクションから値を:
List<ToFilter> list = ...;
Set<String> option2Set = list.stream()
.map(ToFilter::getOption2)
.collect(Collectors.toSet());
List<ToFilter> filtered = list.stream()
.filter(f -> !option2Set.contains(f.getOption1()))
.collect(Collectors.toList());