一、Array 转 List
常用于打印输出 Array
String[] strArr = new String[]{"aa", "bb"}; List<String> list = new ArrayList<>(Arrays.asList(strArr)); list.add("cc"); System.out.println(list);
输出:
[aa, bb, cc]
二、List 转 Array
List容器类中有一个toArray()
的方法,该方法是用来把List转化为数组的。
这个方法有一个特点就是转化出来的数组是复制了原数据的一个副本而不只是原数据的一个引用。因此我们可以放心的更改这些数据而不会影响到原List中的数据。
当我们用toArray()
方法时涉及到数据类型转换的问题,首先需要确保List内的元素是可以转换为你想转化的类型的。
该方法有两种使用形式:toArray()
与toArray(T[] t)
:
toArray()
的返回值是一个Object的数组,Object[],这个数组是不可以进行强制数据转换的。如果你这样写的话,就会报错:
所以像这种情况就要用第二种形式来转换:
toArray(T[] t)
:方法返回一个类T的数组,这个数组包含了类T中的所有元素。
这个方法的特点是:
(1) 如果数组t的长度(创建数组t的时候定义)能够装下整个List的数据的时候,所有数据会被放入数组t中。
例如:
(2) 如果数组t的长度不够长,那么就会返回一个新的数组。
例如:
- 数组t长度足够,内容保存在数组t中,同时返回的结果也可以保存在新建的数组中;
- 长度不够时,数据不能保存在数组t中,但是可以保存在新建的数组中,新建的数组是指 tnew。
参考:
https://blog.csdn.net/gh102/article/details/7301051
https://blog.csdn.net/YimBa/article/details/78550454
我 常用写法
// List List<String> list = new ArrayList<>(); list.add("wen"); list.add("jian"); list.add("bao"); // List to Array String[] array = list.toArray(new String[]{}); // 打印 Array (转换 List后,再打印) System.out.println(Arrays.asList(array));
输出:
[wen, jian, bao]