将枚举转换为集/列表

问题

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

内置的内容如Arrays.asList()Collection.toArray()应该存在于某处,但我无法在IntelliJ调试器的评估窗口中找到它(以及Google / SO结果)。


#1 热门回答(246 赞)

你可以使用Collections.list()将anEnumeration转换为aList在一行:

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

没有类似的方法来获得aSet,但你仍然可以做到一行:

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

#2 热门回答(15 赞)

怎么样:ArrayList Collections.list(Enumeration e)


#3 热门回答(5 赞)

有一个将枚举转换为列表的简单示例。为此我使用了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);
    }

}

参考:How to convert enumeration to list