是否有一种单行桥接方法可以将给定的Enumeration转储到java.util.List
或java.util.Set
?
应该存在像Arrays.asList()
或Collection.toArray()
这样的内置方法,但我无法在我的IntelliJ调试器的求值器窗口(以及Google/SO结果)中找到。
是否有一种单行桥接方法可以将给定的Enumeration转储到java.util.List
或java.util.Set
?
应该存在像Arrays.asList()
或Collection.toArray()
这样的内置方法,但我无法在我的IntelliJ调试器的求值器窗口(以及Google/SO结果)中找到。
你可以使用Collections.list()
在一行代码中将Enumeration
转换为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。对于无关的答案表示抱歉。
Iterators.forEnumeration
。给定Enumeration x
,您可以执行以下操作:
获取一个不可变的Set:
ImmutableSet.copyOf(Iterators.forEnumeration(x));
获取一个不可变的列表:
ImmutableList.copyOf(Iterators.forEnumeration(x));
获取一个哈希集合:
Sets.newHashSet(Iterators.forEnumeration(x));
在Apache commons-collections中也有
EnumerationUtils.toList(enumeration)
我也需要同样的东西,这个解决方案很好用,希望它也能帮助到其他人
Enumeration[] array = Enumeration.values();
List<Enumeration> list = Arrays.asList(array);
然后你可以获取枚举的 .name()。