一、Java中数组转换为List的基本使用方法
Java中提供了不少将数组转成List的方法,最常用的是Arrays.asList()方法,它可以把数组转成List集合对象,基本语法如下:
List<TYPE> list = Arrays.asList(array);
其中,TYPE表示数组元素类型,array表示提供的数组,list即为转换后得到的List对象。
值得注意的是:由于Arrays.asList()方法底层数据的存储结构仍然是数组,所以在转换后的List对象使用一些List特性时可能会出现不同的结果。
二、Java中数组转换为List的细节问题
Arrays.asList()方法有一些需要注意的地方:
1、基本数据类型数组在使用Arrays.asList()方法转换时需要使用到包装类,例如:
int[] array = {1, 2, 3, 4, 5};
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
2、由于Arrays.asList()方法底层数据的存储结构仍然是数组,所以在转换后的List对象使用一些List特性时可能会出现不同的结果。
例如:
String[] array = {"a", "b", "c"};
List<String> list = Arrays.asList(array);
list.set(0, "aa");
System.out.println(Arrays.toString(array)); //输出结果:["aa", "b", "c"]
由于Arrays.asList()方法底层数据的存储结构仍然是数组,所以在修改转换后的List对象时,原数组也会随之被修改。
三、Java中数组转换为List的其他方法
除了Arrays.asList()方法外,Java中还提供了其他数组转换为List的方法,例如:
1、使用Collections.addAll()方法:
String[] array = {"a", "b", "c"};
List<String> list = new ArrayList<>();
Collections.addAll(list, array);
2、使用Arrays.stream()方法:
String[] array = {"a", "b", "c"};
List<String> list = Arrays.stream(array).collect(Collectors.toList());
多数情况下,使用Arrays.asList()方法已经可以满足需求,但其他方法在特定场景下也有其优势。
四、Java中数组转换为List的应用场景
数组转换为List的常见应用场景有:
1、数组转换为List用于方法的参数传递
例如:
public void method(List<String> list) {
//TODO
}
String[] array = {"a", "b", "c"};
method(Arrays.asList(array));
2、数组转换为List用于集合操作
例如:
String[] array = {"a", "b", "c"};
List<String> list = Arrays.asList(array);
list.forEach(System.out::println);
五、Java中数组转换为List的示例代码
public class ArrayToListDemo {
public static void main(String[] args) {
//使用Arrays.asList()方法
Integer[] intArray = {1, 2, 3, 4, 5};
List<Integer> intList = Arrays.asList(intArray);
System.out.println(intList);
String[] strArray = {"a", "b", "c"};
List<String> strList = Arrays.asList(strArray);
System.out.println(strList);
//使用Collections.addAll()方法
List<String> list1 = new ArrayList<>();
Collections.addAll(list1, strArray);
System.out.println(list1);
//使用Arrays.stream()方法
List<String> list2 = Arrays.stream(strArray).collect(Collectors.toList());
System.out.println(list2);
}
}
原创文章,作者:LOJM,如若转载,请注明出处:https://www.506064.com/n/133089.html
微信扫一扫
支付宝扫一扫