Ant*_*n K 155 java api collections conventions
是否有一些单行桥接方法将给定的枚举转储到java.util.List或java.util.Set?
某些内置类似Arrays.asList()或Collection.toArray()应该存在的东西,但我无法在IntelliJ调试器的评估窗口中找到它(以及Google/SO结果).
Whi*_*g34 297
您可以使用Collections.list()一个转换Enumeration到List在一个行:
List<T> list = Collections.list(enumeration);
Run Code Online (Sandbox Code Playgroud)
没有类似的方法来获得Set,但你仍然可以做到一行:
Set<T> set = new HashSet<T>(Collections.list(enumeration));
Run Code Online (Sandbox Code Playgroud)
如果您需要Set而不是List,您可以使用EnumSet.allOf()。
Set<EnumerationClass> set = EnumSet.allOf(EnumerationClass.class);
Run Code Online (Sandbox Code Playgroud)
更新:JakeRobb 是对的。我的回答是关于 java.lang.Enum 而不是 java.util.Enumeration。抱歉不相关的答案。
有一个将枚举转换为列表的简单示例.为此我使用的 Collections.list(enum)方法.
public class EnumerationToList {
public static void main(String[] args) {
Vector<String> vt = new Vector<String>();
vt.add("java");
vt.add("php");
vt.add("array");
vt.add("string");
vt.add("c");
Enumeration<String> enm = vt.elements();
List<String> ll = Collections.list(enm);
System.out.println("List elements: " + ll);
}
}
Run Code Online (Sandbox Code Playgroud)
参考:如何将枚举转换为列表
使用番石榴时(参见文档)有Iterators.forEnumeration. 鉴于Enumeration x您可以执行以下操作:
获得一个不可变的集合:
ImmutableSet.copyOf(Iterators.forEnumeration(x));
Run Code Online (Sandbox Code Playgroud)
获取不可变列表:
ImmutableList.copyOf(Iterators.forEnumeration(x));
Run Code Online (Sandbox Code Playgroud)
获取哈希集:
Sets.newHashSet(Iterators.forEnumeration(x));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88916 次 |
| 最近记录: |