那些年遇到的坑--------“集合转数组”
废话不多说,直接上代码
public void test() throws Exception { List<String> list = new ArrayList<String>(2); list.add("aaa"); list.add("bbb"); String[] array = new String[list.size()]; System.out.println(list.toArray(array)); System.out.println(list.toArray());//返回值是一个Object[]类 }
说明:使用 toArray 带参方法,入参分配的数组空间不够大时,toArray 方法内部将重新分配 内存空间,并返回新数组地址;如果数组元素大于实际所需,下标为[ list.size() ]的数组 元素将被置为 null,其它数组元素保持原值,因此最好将方法入参数组大小定义与集合元素 个数一致。直接使用 toArray 无参方法存在问题,此方法返回值只能是 Object[]类,若强转其它 类型数组将出现 ClassCastException 错误。