如何从List<T>
构建Enumeration<? extends T>
?
我发现的最佳方式是
Enumeration<? extends T> toBeConverted;
List<T> = new ArrayList<>(Collections.list(toBeConverted));
但是这会创建两个List
(Collections.list
方法中的一个,以及ArrayList
的构造函数中的另一个)。有没有办法避免临时副本?
(其他解决办法是:
List<T> list = new ArrayList<T>;
while (toBeConverted.hasMoreElements) { list.add(toBeConverted.nextElement()); }
但我认为这太冗长了......如果可能的话,我想要一个带有构造函数的解决方案。
答案 0 :(得分:0)
方法Collections.list
制作新的ArrayList。
public static <T> ArrayList<T> list(Enumeration<T> e) {
ArrayList<T> l = new ArrayList<>();
while (e.hasMoreElements())
l.add(e.nextElement());
return l;
}
您可以在没有构造函数的情况下调用Collections.list
方法。
Enumeration<? extends T> toBeConverted;
List<T> = (List<T>) Collections.list(toBeConverted);