基準に基づいてリストを複数のリストにフィルタリングするこのケースがあります。
for(SomeObj someObj : someObjs) {
if(StringUtils.equalsIgnoreCase(someObj.getIndicator(), "Y")) {
beansWithY.add(someObj);
} else if(StringUtils.equalsIgnoreCase(someObj.getIndicator(), "N")) {
beansWithN.add(someObj);
} else {
beansWithIndNotValid.add(someObj);
}
}
これは単純に見えますが、Lambdaj を使用してこれが可能かどうか疑問に思っています。
グループ化に出くわし、次のように使用できますが、デフォルトのシナリオをカバーしていないようです。
Group<SomeObj> group = group(listOfSomeObjs, by(on(SomeObj.class).getIndicator()));
この後、結果は次のようになります。
Y group
N group
null group
a group for each and every invalid indicator ( like A, B, C...)
これが上記のforループのように機能するようにできるかどうか疑問に思っています.Yの場合-リスト/グループに移動し、N-別のリスト/グループに移動し、それ以外はすべて1つのグループに移動します。