toArray 有关问题
toArray 问题Java codeListString c new ArrayListString()c.add(aa)c.add(bb)String[] strs
toArray 问题
Java codeList<String> c = new ArrayList<String>(); c.add("aa"); c.add("bb"); String[] strs = c.toArray(new String[c.size()]); String[] sss = c.toArray(new String[0]); for(String s:strs){ System.out.println(s); }
toArray(参数),这个参数为什么new String[0]会产生c同样大的数组呢?比如c里面有10个元素,那么strs和sss是一样的,为什么会这样呢
[解决办法]toArray源码其实比较了下size,小于strs的length的话,就new一个strs length的一个新数组
lz看下源码就知道了。
[解决办法]恩,是这样的.<T> T[] t.toArray(T[] a) 他会比较t大小和a.大小.
如果t的大小>a.length,则以t的大小为准;
如果t的size<a.length;则以a.length为准,先copy t到数组,(a.length-t.size)后的每一项为null;
如果t.size==a.length ,则copy t到数组。