Java 获取单例集合的对象

Java 获取单例集合的对象,java,collections,Java,Collections,我想得到一个集合的对象,我知道它只有一个元素(基本上它与Collections.singletonList()的相反-但是我不知道该集合是否是list/set/something,所以我不能使用c.get(0)) 目前我使用的是c.iterator.next(),不知道Java中是否已经有这样的方法,或者是一个公共库(ApacheCommons、guava等)方法签名,并清楚地表明它是一个列表 这是签名: public static <T> List<T> singlet

我想得到一个集合的对象,我知道它只有一个元素(基本上它与
Collections.singletonList()
的相反-但是我不知道该集合是否是list/set/something,所以我不能使用
c.get(0)


目前我使用的是
c.iterator.next()
,不知道Java中是否已经有这样的方法,或者是一个公共库(ApacheCommons、guava等)

方法签名,并清楚地表明它是一个
列表

这是签名:

public static <T> List<T> singletonList(T o)
公共静态列表singletonList(TO)
这是JavaDoc:

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

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

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


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

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

使用Java 8,您可以:

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

OP实际上没有使用
singletonList
。他们想要的是相反的结果:从任何
集合中提取一个元素
。希望看到此解决方案与
集合的基准比较。迭代器()。使用