读书人

java ListArray对象的语法不明白: new

发布时间: 2011-12-23 23:32:01 作者: rapoo

java ListArray对象的语法不明白: new String[0]

方法中:
{
ArrayList list=new ArrayList()
............
return(String[])list.toArray(new String[0]);
}

参数 (new String[0])是干什么用的,怎理解String[0]




[解决办法]
return(String[])list.toArray(new String[0]); 肯定方法定义的返回类型是 String[]
list.toArray(new String[0]); 就是在做类型转换
还有不明白的地方吗?
[解决办法]
只是 一个类型标示,用来告诉toArray方法具体转化成什么类型。
list.toArray(new String[0]);//转化成String数组

list.toArray(new int[0]);//转化成int数组
[解决办法]
[0]是数组长度为0啊
[解决办法]
<T> T[] toArray(T[] a);
泛型
会返回你一个list长度的String 类型的数组
[解决办法]
<T> T[] toArray(T[] a)需要一个T[] a,new String[0]相当于开辟了一个长度为0的String[],并且指定了泛型。这样函数的调用是将list转换了一个String的数组。

[解决办法]
new String[0] 就是new出一个数组 [0] 是长度标示
[解决办法]
String[0]确实不好理解,
我觉得这是sun设计的一个缺陷,
在这里

return(String[])list.toArray(new String[0]);
return(String[])list.toArray(new String[100]);
return(String[])list.toArray(new String[500]);

我记得好像没什么区别吧,
当然我也可能理解错了。。。


[解决办法]

探讨

new String[0] 申请了0个对象?
new String[100] 申请了100个对象?

[解决办法]
探讨
new String[0] 申请了0个对象?
new String[100] 申请了100个对象?

[解决办法]
有区别的。
比如list元素个数1,字符串数组初始化个数3,那么访问访问第2个元素返回null,
比如list元素个数3,字符串数组初始化个数1,那么访问访问第2个元素报错。
看toArray方法的定义。


探讨

String[0]确实不好理解,
我觉得这是sun设计的一个缺陷,
在这里

return(String[])list.toArray(new String[0]);
return(String[])list.toArray(new String[100]);
return(String[])list.toArray(new String[500]);

我记得好像没什么区别吧,……

[解决办法]
探讨

new String[0] 申请了0个对象?
new String[100] 申请了100个对象?

[解决办法]
学习了
[解决办法]
return list.toArray(new String[0]);//这种方式效率最高
return list.toArray(new String[100]);//浪费了100个地址空间,以及申请空间的时间
return list.toArray(new String[500]);//浪费了500个地址空间,以及申请空间的时间
new String[0]就是起一个模板的作用
[解决办法]
探讨

有区别的。
比如list元素个数1,字符串数组初始化个数3,那么访问访问第2个元素返回null,
比如list元素个数3,字符串数组初始化个数1,那么访问访问第2个元素报错。
看toArray方法的定义。

return(String[])list.……

[解决办法]
我也不太明白????????

读书人网 >J2SE开发

热点推荐