Java 集合转换
在Java编程过程中,我们经常需要在不同的集合类型之间进行转换。例如,将数组转换为List,将Set转换为List,或者将Map的键或值提取出来等。掌握这些转换技巧对于高效处理数据结构至关重要。
为什么需要集合转换?
集合转换的需求源于不同集合类型的特点和使用场景:
- 不同集合类型有不同的特性和优势
- 某些API可能要求特定类型的集合作为输入或输出
- 在处理数据时,可能需要利用不同集合类型的功能
数组与集合的转换
数组转换为List
将数组转换为List是最常见的操作之一,有多种方法可以实现:
使用Arrays.asList()
String[] array = {"Apple", "Banana", "Orange"};
List<String> list = Arrays.asList(array);
System.out.println("原始数组: " + Arrays.toString(array));
System.out.println("转换后的List: " + list);
输出:
原始数组: [Apple, Banana, Orange]
转换后的List: [Apple, Banana, Orange]
注意
Arrays.asList()
返回的List是固定大小的列表,它是数组的视图,不支持添加或删除元素。如果尝试这些操作,会抛出UnsupportedOperationException
异常。
如果需要一个可修改的List,可以使用以下方式:
String[] array = {"Apple", "Banana", "Orange"};
List<String> list = new ArrayList<>(Arrays.asList(array));
list.add("Grape"); // 这是允许的
System.out.println("可修改的List: " + list);
输出:
可修改的List: [Apple, Banana, Orange, Grape]