ご存知のとおり、次のようなものです。
<T> T single(List<T> list) {
assertEquals(1, list.size());
return list.get(0);
}
lambdajにはそのようなものが含まれていますか?
lambdajには、指定された hamcrest マッチャーによって表される条件を満たすアイテムが複数ある場合に例外をスローするselectUniqueメソッドがあります。一致する特定の条件がないため、常に true を返す Matcher が必要です (hamcrest がそのままでそのような Matcher を提供しているとは思えませんが、実装するのは簡単です)、またはリスト内の (唯一の) オブジェクトが少なくとも null でないことを確認したい場合は、次のようにしてこの結果を得ることができます。
selectUnique(list, Matchers.notNullValue());
まったく同じではありませんが、Java には、要素が 1 つしかないことが保証されているリスト (およびその他のコレクション) を作成する方法があります。Collections.singleton* メソッドを見てください。これらのコレクションは不変であることに注意してください (エントリは構築時に提供されます)。
私のxpressoライブラリを使用できる場合は、次のように記述できます。
x.list(iterable).toScalar();
Guavaには、Iterables.getFirst()
まさにそれを行うメソッドがあります。