Collections.list方法可将Enumeration转换为ArrayList,它属于java.util.Collections类,接收Enumeration参数并遍历其元素生成List。适用于Vector或Hashtable等旧API返回的Enumeration,便于使用现代集合操作。需注意传入null会抛出NullPointerException,且遍历后Enumeration不可重复使用。

Collections.list 方法可以将 Enumeration 转换为 List,这是 Java 集合工具类提供的一种便捷方式。它接收一个 Enumeration 类型参数,并返回一个包含 Enumeration 中所有元素的 ArrayList。
方法签名
public static该方法属于 java.util.Collections 工具类,适用于任何实现了 Enumeration 接口的对象。调用后会遍历整个 Enumeration,将每个元素添加到新创建的 ArrayList 中,然后返回这个列表。
使用场景
Enumeration 常见于一些较老的 API 中,比如 Vector.elements() 或 Hashtable.elements()。当你需要将其转换为现代集合框架中的 List 以便使用增强 for 循环、Stream 或其他集合操作时,Collections.list 就非常有用。
例如:
立即学习“Java免费学习笔记(深入)”;
Vectorvector = new Vector<>(); vector.add("apple"); vector.add("banana"); vector.add("cherry"); Enumeration enumeration = vector.elements(); List list = Collections.list(enumeration); System.out.println(list); // 输出: [apple, banana, cherry]
注意事项
转换过程中会完整遍历 Enumeration,因此确保在调用前没有提前消费过该枚举(即已经调用过 hasMoreElements() 和 nextElement() 到中间状态),否则会导致部分或全部数据丢失。
- 返回的是 ArrayList,是可变列表,后续可修改
- 原始 Enumeration 不受影响,但无法重复使用已遍历的枚举对象获取数据
- 如果传入 null,会抛出 NullPointerException










