在Collection集合中存在一个将集合转为数组的方法:
1.Object[] toArray()
2.<T> T[] toArray(T[] a)
两种方法在API中的描述:
注:<T> T[] toArray(T[] a) 方法返回的数组类型一定是集合中所储存的类型,如:集合中存储的为Character类型则返回的数组类型也应为Character类型,不能为char类型,若要使用char类型可通过
public char charValue() 方法来转换得到
例1:Object [ ] toArray() 方法
import java.util.ArrayList;
public class ToArrayDemo {
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("i");
al.add("love");
al.add("Zilatan");
Object[] obj = al.toArray();
for (int i = 0; i < obj.length; i++) {
String str = (String) obj[i];
System.out.println(str);
}
}
}
例2:<T> T [] toArray(T [] a)
错误方式:使用String[] 强转会出现ClassCastException (类转换异常)
正确方法:
import java.util.ArrayList;
public class ToArrayDemo {
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("i");
al.add("am");
al.add("Zilatan");
al.add("!");
String[] strArr = al.toArray(new String[al.size()]); // 匿名数组对象
for (String str : strArr) {
System.out.println(str);
}
}
}
bingo!