我想获取一个我知道只有一个元素的集合的对象(基本上它与它的相反Collections.singletonList()
- 但我不知道集合是否是列表/集合/其他东西,所以我不能使用c.get(0)
)。
目前我使用c.iterator.next()
,想知道在 Java 中是否已经有一种方法或一个常见的库(apache-commons、guava 等)
我想获取一个我知道只有一个元素的集合的对象(基本上它与它的相反Collections.singletonList()
- 但我不知道集合是否是列表/集合/其他东西,所以我不能使用c.get(0)
)。
目前我使用c.iterator.next()
,想知道在 Java 中是否已经有一种方法或一个常见的库(apache-commons、guava 等)
Iterables.getOnlyElement()
(或者Iterables.getFirst()
,如果集合可以是空的)来自 Guava。
方法签名和JavaDoc清楚地表明它是一个List
.
这是签名:
public static <T> List<T> singletonList(T o)
这是JavaDoc:
返回仅包含指定对象的不可变列表。返回的列表是可序列化的。
因此,这意味着您可以简单地使用:
List<MyClass> singleton = Collections.singletonList(myObject);
MyClass obj = singleton.get(0);
哦,现在我明白你的意思了。我不得不承认你的问题很清楚。但出于某种原因,我不明白:)
使用 Java 8,您可以:
collection.stream().findAny().get();