是否有一些单行桥接方法将给定的枚举转储到java.util.List或java.util.Set?

一些内置的东西,如Arrays.asList()或Collection.toArray()应该存在于某个地方,但我无法在我的IntelliJ调试器的评估器窗口中找到它(以及谷歌/SO结果)。


当前回答

如果你需要Set而不是List,你可以使用EnumSet.allOf()。

Set<EnumerationClass> set = EnumSet.allOf(EnumerationClass.class);

更新:JakeRobb是对的。我的答案是java.lang.Enum而不是java.util.Enumeration。抱歉,我的回答不相关。

其他回答

在Apache common -collections中也有 EnumerationUtils.toList(枚举)

你可以使用Collections.list()在一行内将枚举转换为列表:

List<T> list = Collections.list(enumeration);

没有类似的方法来获取Set,但是你仍然可以在一行中完成:

Set<T> set = new HashSet<T>(Collections.list(enumeration));

如果你需要Set而不是List,你可以使用EnumSet.allOf()。

Set<EnumerationClass> set = EnumSet.allOf(EnumerationClass.class);

更新:JakeRobb是对的。我的答案是java.lang.Enum而不是java.util.Enumeration。抱歉,我的回答不相关。

这个怎么样:收集。list(Enumeration e)返回一个<T>的数组列表

当使用番石榴(见文档)有Iterators.forEnumeration。给定一个枚举x,你可以做以下事情:

获取一个不可变的集合:

ImmutableSet.copyOf(Iterators.forEnumeration(x));

获取一个不可变列表:

ImmutableList.copyOf(Iterators.forEnumeration(x));

获取hashSet:

Sets.newHashSet(Iterators.forEnumeration(x));