new string[0]的作用

psyl 2008-06-17 02:05:53
new string[0]的作用

比如:String[] result = set.toArray(new String[0]);


这里的String[0]是不是分配0长度数组? 为什么要用0.
谁解释下。
...全文
3171 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
psyl 2008-06-17
  • 打赏
  • 举报
回复
了解。 结贴。。 谢谢楼上各位。
sagezk 2008-06-17
  • 打赏
  • 举报
回复
String[] result = set.toArray(new String[set.size()]);
我是小辉辉 2008-06-17
  • 打赏
  • 举报
回复
JAVA规定在创建数组对象时,必须指定第一维的长度.
当然new String[0]在现实应用中没有多大意义,但也有他一定的用武之地,比如:
List l=new ArrayList();
//....
//如果l内此时没有元素,那么
String[] arr=new String[l.size()];//就是这种情况l.size()为0;即使我们调用arr的属性也不会报错,因为他以创建了对象,只不过无法存放数据而以。
for(int i=0;i<l.size();i++){
arr[i]=(String)l.get(i);
}
我只是举个例子而以,
现实中我们不会直接去new String[0],但这种现象是经常发生的,就象上面一样。
youzy 2008-06-17
  • 打赏
  • 举报
回复
集合搞得我有点混,学习了
ryan0629 2008-06-17
  • 打赏
  • 举报
回复
在不知道长度的情况下,设为0,可以节省空间.
anqini 2008-06-17
  • 打赏
  • 举报
回复
你也可以写1阿~0不是固定的~
只是说,长度不够的情况下会自动分配合适的长度,你预先知道长度是最好的!
psyl 2008-06-17
  • 打赏
  • 举报
回复
Set<String> set = new TreeSet<String>();
set.addAll(Arrays.asList(array1));
String[] result = set.toArray();
System.out.println(Arrays.toString(result));

这里我可以吧String [] result改成 Object []通过。。 可string[0]还是不清楚
psyl 2008-06-17
  • 打赏
  • 举报
回复
注意,toArray(new Object[0]) 和 toArray() 在功能上是相同的。

这里,String[] result = set.toArray(new String[0]);
我把 toArray(new String[0])换成toArray(new String),这样会出现类型不匹配的错误。。怎么改
lovingprince 2008-06-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 psyl 的回复:]
引用 2 楼 xql80329 的回复:
长度为0
Java codeString[] result=newString[0]
System.out.println(result.length);//0


String[] result = set.toArray(new String[0]);
我set中放了元素,如果长度是定长0的话,请问怎么能放进去??
[/Quote]

我发的你肯定没看,呵呵,如果长度不够,会重新创建一个新的数组来放元素的
psyl 2008-06-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xql80329 的回复:]
长度为0
Java codeString[] result=newString[0]
System.out.println(result.length);//0
[/Quote]

String[] result = set.toArray(new String[0]);
我set中放了元素,如果长度是定长0的话,请问怎么能放进去??
jing61281125 2008-06-17
  • 打赏
  • 举报
回复
学习~
xql80329 2008-06-17
  • 打赏
  • 举报
回复
长度为0
 String[] result = new String[0]
System.out.println(result.length);//0
lovingprince 2008-06-17
  • 打赏
  • 举报
回复
返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。如果指定的数组能容纳该 collection,则返回包含此 collection 元素的数组。否则,将根据指定数组的运行时类型和此 collection 的大小分配一个新数组。
如果指定的数组能容纳 collection 并有剩余空间(即数组的元素比 collection 的元素多),那么会将数组中紧跟在 collection 末尾的元素设置为 null。(这对确定 collection 的长度很有用,但只有 在调用方知道此 collection 没有包含任何 null 元素时才可行。)

如果此 collection 对其迭代器返回的元素顺序做出了某些保证,那么此方法必须以相同的顺序返回这些元素。

像 toArray 方法一样,此方法充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。更进一步说,此方法允许在输出数组的运行时类型上进行精确控制,并且在某些情况下,可以用来节省分配开销。

假定 l 是只包含字符串的一个已知 List。以下代码用来将该列表转储到一个新分配的 String 数组:

String[] x = (String[]) v.toArray(new String[0]);
注意,toArray(new Object[0]) 和 toArray() 在功能上是相同的。


参数:
a - 存储此 collection 元素的数组(如果其足够大);否则,将为此分配一个具有相同运行时类型的新数组。

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧