Collections.list() 将 Enumeration 转为 ArrayList,实现新旧 API 平滑过渡,简化代码并支持现代集合操作。

Collections.list()
Enumeration
ArrayList
Collection
在 Java 的早期版本中,
Enumeration
Hashtable
elements()
keys()
Vector
elements()
Iterable
List
Collection
Collections.list()
Enumeration
Enumeration
ArrayList
List
List
get(index)
subList()
sort()
来看一个简单的例子,假设我们有一个
Hashtable
立即学习“Java免费学习笔记(深入)”;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.List;
public class EnumerationToListExample {
public static void main(String[] args) {
Hashtable<String, String> properties = new Hashtable<>();
properties.put("user", "admin");
properties.put("env", "dev");
properties.put("version", "1.0");
// 获取Enumeration
Enumeration<String> keysEnumeration = properties.keys();
// 使用Collections.list() 转换为List
List<String> keyList = Collections.list(keysEnumeration);
System.out.println("转换后的List: " + keyList);
// 现在可以对List进行各种操作了
keyList.sort(String::compareTo);
System.out.println("排序后的List: " + keyList);
// 或者转换为Stream
keyList.stream().filter(s -> s.startsWith("v")).forEach(System.out::println);
}
}这个方法虽然简单,但其价值在于提供了一个优雅的桥梁,避免了手动循环
while(enumeration.hasMoreElements())
list.add(enumeration.nextElement())
在现代 Java 开发语境下,
Enumeration
List
Collection
Enumeration
Iterator
remove()
Enumeration
ClassCastException
本文档主要讲述的是Android数据格式解析对象JSON用法;JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服务器通信,在网络数据传输与解析时非常方便。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
此外,
Enumeration
hasMoreElements()
nextElement()
List
Collection
get(index)
add()
remove()
indexOf()
subList()
再者,
Enumeration
Iterable
Stream
Enumeration
Iterable
stream()
Collections.list()
List
stream()
Enumeration
List
Enumeration
所以,将
Enumeration
List
Collections.list()
public static <T> ArrayList<T> list(Enumeration<T> e) {
ArrayList<T> list = new ArrayList<>(); // 创建一个新的ArrayList
while (e.hasMoreElements()) { // 遍历Enumeration
list.add(e.nextElement()); // 将每个元素添加到List中
}
return list; // 返回填充好的List
}可以看到,它本质上就是创建了一个新的
ArrayList
Enumeration
hasMoreElements()
nextElement()
ArrayList
Enumeration
add()
那么,除了
Collections.list()
Collections.list()
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.List;
public class ManualEnumerationToListExample {
public static void main(String[] args) {
Hashtable<String, String> data = new Hashtable<>();
data.put("key1", "value1");
data.put("key2", "value2");
Enumeration<String> keysEnum = data.keys();
// 手动转换方法1:使用while循环
List<String> manualList1 = new ArrayList<>();
while (keysEnum.hasMoreElements()) {
manualList1.add(keysEnum.nextElement());
}
System.out.println("手动转换方法1: " + manualList1);
// 注意:Enumeration是单向的,一旦遍历完就不能再次使用。
// 如果要演示其他方法,需要重新获取Enumeration。
Enumeration<String> keysEnum2 = data.keys();
// 手动转换方法2:如果想更“现代”一点,可以先转为Iterator,再转为List(Java 9+)
// 这种方式通常不会直接用在Enumeration上,因为Collections.list()更直接。
// 但如果有一个老旧的Enumeration,又想用Stream,可以这样:
List<String> manualList2 = new ArrayList<>();
// 假设这里我们重新获取了 keysEnum2
keysEnum2.asIterator().forEachRemaining(manualList2::add);
System.out.println("手动转换方法2 (Java 9+): " + manualList2);
}
}从性能角度来看,
Collections.list()
while
Collections.list()
Enumeration
以上就是Java中Collections.list方法将Enumeration转List的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号