toArray分无参和有参,今天在用toArray的有参方法时遇到一点麻烦,就是最后得到的数组的长度比预想的大,而且多的元素都为null……
-- Object[] toArray()
-- <T>T[] toArray(T[] a)
无参不说,当用有参时,如:
String [] a = new String[n];
List<String> list = new ArrayList<String>();
String [] b = list.toArray(a);
其中,b的length不是由list的size确定,而是由a的长度n确定!如果a的长度大于list的长度,多的元素自动设置为null。
所以,如果想让新得到的数组大小刚好等于list中元素个数,toArray里的参数数组最好这样设置:
String [] c = new String [list.size()];(然后把c作为toArray的参数即可)