当前位置: 代码迷 >> J2SE >> toArray 有关问题
  详细解决方案

toArray 有关问题

热度:174   发布时间:2016-04-24 12:22:00.0
toArray 问题
Java code
List<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到数组。