10

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

目前我使用c.iterator.next(),想知道在 Java 中是否已经有一种方法或一个常见的库(apache-commons、guava 等)

4

3 回答 3

7

Iterables.getOnlyElement()(或者Iterables.getFirst(),如果集合可以是空的)来自 Guava。

于 2012-07-30T07:45:21.667 回答
3

方法签名和JavaDoc清楚地表明它是一个List.

这是签名:

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

这是JavaDoc:

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

因此,这意味着您可以简单地使用:

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

哦,现在我明白你的意思了。我不得不承认你的问题很清楚。但出于某种原因,我不明白:)

于 2012-07-30T07:44:15.093 回答
1

使用 Java 8,您可以:

collection.stream().findAny().get();
于 2015-02-09T10:04:47.290 回答