【Java】ArrayList<String>轉化為String陣列問題
阿新 • • 發佈:2018-10-31
Java的容器類Collections中toArray()方法,可以把諸如ArrayList<String>的動態陣列、不定長轉化靜態陣列、定長陣列String[]
但是,如下的轉化方式是錯誤的。
[java] view plain copy
- String[] strArray = (String[]) arrayList.toArray();
Exception in thread "xx" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
如下圖:
正確的方式應該寫成:
[java] view plain copy
- String[] strArrayTrue = (String[]) arrayList.toArray(
[java] view plain copy
- import java.util.*;
- public class ArrayListToStrArr {
-
- public static void main(String[] args) {
- ArrayList<String> arrayList = new ArrayList<String>();
- arrayList.add("1");
- arrayList.add("2");
- // 正確轉化方式
- String[] strArrayTrue = (String[]) arrayList.toArray(new String[0]);
- for (String str : strArrayTrue) {
- System.out.println(str);
- }
- // 錯誤的轉化方式
- // String[] strArray = (String[]) arrayList.toArray();
- }
- }
Java的容器類Collections中toArray()方法,可以把諸如ArrayList<String>的動態陣列、不定長轉化靜態陣列、定長陣列String[]
但是,如下的轉化方式是錯誤的。
[java] view plain copy
- String[] strArray = (String[]) arrayList.toArray();
Exception in thread "xx" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
如下圖:
正確的方式應該寫成:
[java] view plain copy
- String[] strArrayTrue = (String[]) arrayList.toArray(new String[0]);
[java] view plain copy
- import java.util.*;
- public class ArrayListToStrArr {
- public static void main(String[] args) {
- ArrayList<String> arrayList = new ArrayList<String>();
- arrayList.add("1");
- arrayList.add("2");
- // 正確轉化方式
- String[] strArrayTrue = (String[]) arrayList.toArray(new String[0]);
- for (String str : strArrayTrue) {
- System.out.println(str);
- }
- // 錯誤的轉化方式
- // String[] strArray = (String[]) arrayList.toArray();
- }
- }