首页 新闻 会员 周边 捐助

关于toArray(T[] t)的问题。

0
[待解决问题]

String[s1 = list.toArray(new String[0]);

为啥数组大小是0啊?我认为应该规定成list.size()啊。话说没有参数不行嘛?

Endlife7的主页 Endlife7 | 菜鸟二级 | 园豆:208
提问于:2017-01-21 22:12
< >
分享
所有回答(3)
0

new String[0]  你定义的就是 0 啊,  new String[list.size()]  试下 

hello,逗比 | 园豆:203 (菜鸟二级) | 2017-01-22 00:58

 我的意思是为啥要规定是0,不是我敲得,在网上看到的

支持(0) 反对(0) Endlife7 | 园豆:208 (菜鸟二级) | 2017-01-23 09:47
0

就应该是0.这没毛病

龙葛格 | 园豆:782 (小虾三级) | 2017-01-22 11:09

为啥规定要是0啊?

支持(0) 反对(0) Endlife7 | 园豆:208 (菜鸟二级) | 2017-01-23 09:48
1

以下是ArrayList的源码,这里有个数组长度和列表长度的比较,注意看注释的那句话:)

    public <T> T[] toArray(T[] a) {
        if (a.length < size)
            // Make a new array of a's runtime type, but my contents:
            return (T[]) Arrays.copyOf(elementData, size, a.getClass());
        System.arraycopy(elementData, 0, a, 0, size);
        if (a.length > size)
            a[size] = null;
        return a;
    }

 

安静的下雪天 | 园豆:274 (菜鸟二级) | 2017-01-24 11:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册