標籤:arraylist string 數組 java toarray
Java的容器類Collections中toArray()方法,可以把諸如ArrayList<String>的動態數組、不定長轉化靜態數組、定長數組String[]
但是,如下的轉化方式是錯誤的。
String[] strArray = (String[]) arrayList.toArray();
如果這樣執行會導致如下的錯誤:
Exception in thread "xx" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
如:
正確的方式應該寫成:
String[] strArrayTrue = (String[]) arrayList.toArray(new String[0]);
比如,如下的一段程式,是正常的:
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();}}同理推廣到數組ArrayList<Integer>等
【Java】ArrayList<String>轉化為String數組問題