最近、コレクションに1つの要素しか存在しない場合、「特殊なケース」シナリオを実行する必要がありました。自家製のコレクションクラスの醜いので、私が作成した二つの方法が見えた...size() == 1
のチェックと...iterator.next()
を使用して取得:Guavaを使用して1つの要素のみが存在するかどうか確認してください
public class Collections {
public static <T> boolean isSingleValue(Collection<T> values) {
return values.size() == 1;
}
public static <T> T singleValue(Collection<T> values) {
Assert.isTrue(isSingleValue(values));
return values.iterator().next();
}
}
数日前、私はグアバはIterables.getOnlyElementというメソッドを持っていることを発見しました。それは私の必要性をカバーし、singleValue
を置き換えますが、isSingleValue
の一致が見つかりません。それは設計によるのですか? Iterables.isOnlyElement
メソッドの機能要求を入れる価値はありますか?
EDIT: 私はグアバに強化を開くことを決めたいくつかのupvotesがあったので - issue 957が。ファイナル解像度 - 'WontFix'引数はThomas/Xaerxessが提供したものと非常によく似ています。
これは明らかではない、「私は解決するよ」何を意味するのでしょうか?あなたはこれが解決策であると言っているのですか、問題に取り組んでいますか? –
これは私にとっては解決策です。 – Falci