在开发中经常会需要将字符串数组转换成List,或者是相反的操作。可以通过List本身的方法进行转换。
通过 toArray()方法将List转成数组
通过asList()方法将数组转成List。
List<String> stringList = new ArrayList<String>();
stringList.add("1001");
stringList.add("1002");
stringList.add("1003");
stringList.add("1004");
stringList.add("1005");
// String[] stringArray = (String[]) stringList.toArray();
String[] stringArray = stringList.toArray(new String[stringList.size()]);
System.err.println("stringList.toArray");
for (String string: stringArray) {
System.err.println(string);
}
stringArray[3] = "1013";
stringArray[4] = "1015";
stringList = Arrays.asList(stringArray);
System.out.println("Arrays.asList");
for (String string: stringList) {
System.out.println(string);
}
使用toArray的时候,不能通过cast进行强制类型转换,虽然语法上不会报错,但是运行时会报ClassCastException错误
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
最终输出如下
stringList.toArray
1001
1002
1003
1004
1005
Arrays.asList
1001
1002
1003
1013
1015