获取单件集合的对象

时间:2012-07-30 07:41:37

标签: java collections

我想得到一个我知道的集合的对象只有一个元素(基本上它与Collections.singletonList()的反面相反 - 但是我不知道集合是列表/集合还是其他东西所以我不能使用c.get(0))。

目前我使用c.iterator.next(),想知道在Java中是否已经存在一种方法或者其中一个公共库(apache-commons,guava等)。

3 个答案:

答案 0 :(得分:7)

来自番石榴的

Iterables.getOnlyElement()(或Iterables.getFirst(),如果集合可以为空)。

答案 1 :(得分:3)

方法签名和JavaDoc清楚地说它是List

这是签名:

public static <T> List<T> singletonList(T o)

这是JavaDoc:

  

返回仅包含指定对象的不可变列表。返回的列表是可序列化的。

所以,这意味着你可以简单地使用:

List<MyClass> singleton = Collections.singletonList(myObject);
MyClass obj = singleton.get(0);

噢,现在我明白了你的意思。我不得不承认你的问题很明确。但由于一个或另一个原因,我不明白:))

答案 2 :(得分:1)

使用Java 8,您可以:

collection.stream().findAny().get();