首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

toArray 有关问题

2012-02-03 
toArray 问题Java codeListString c new ArrayListString()c.add(aa)c.add(bb)String[] strs

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到数组。

热点排行
Bad Request.