社区
Java SE
帖子详情
java ListArray对象的语法不明白: new String[0]
BCBPLC
2011-10-26 05:00:09
方法中:
{
ArrayList list=new ArrayList()
............
return(String[])list.toArray(new String[0]);
}
参数 (new String[0])是干什么用的,怎理解String[0]
...全文
1324
20
打赏
收藏
java ListArray对象的语法不明白: new String[0]
方法中: { ArrayList list=new ArrayList() ............ return(String[])list.toArray(new String[0]); } 参数 (new String[0])是干什么用的,怎理解String[0]
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
g406824283
2011-10-28
打赏
举报
回复
[Quote=引用 17 楼 dongchao_mygirl 的回复:]
引用 12 楼 g406824283 的回复:
有区别的。
比如list元素个数1,字符串数组初始化个数3,那么访问访问第2个元素返回null,
比如list元素个数3,字符串数组初始化个数1,那么访问访问第2个元素报错。
看toArray方法的定义。
return(String[])list.……
不对吧,那list.toArray(new String[0]);字……
[/Quote]
哦,如果是0,不报错,只是个数元素个数是list的个数。
lacus87
2011-10-27
打赏
举报
回复
List能听你命令转成某种固定类型的数组,但是你不告诉他转成什么类型,它就很傻比不知道怎么转,所以你得创造个样例出来告诉它,你给我转成这种类型,它就知道了。
new String[0]就是你创造的样例,这个0无所谓,放0只是表示new出来的样例是空数组少占点空间。
至于String[] aa = list.toArray(new String[0]); 会报错,是因为list虽然知道我要转出来的是String数组,但是编译器不知道list.toArray()返回的是什么数组啊,所以你得强转下.....
yangyi8010
2011-10-26
打赏
举报
回复
我也不太明白????????
dongchao_mygirl
2011-10-26
打赏
举报
回复
[Quote=引用 12 楼 g406824283 的回复:]
有区别的。
比如list元素个数1,字符串数组初始化个数3,那么访问访问第2个元素返回null,
比如list元素个数3,字符串数组初始化个数1,那么访问访问第2个元素报错。
看toArray方法的定义。
return(String[])list.……
[/Quote]
不对吧,那list.toArray(new String[0]);字符串数组声明为0,就要一直报错了
BCBPLC
2011-10-26
打赏
举报
回复
悟出来了:
ArrayList.toArray()需要返回String [] “串对象数组” 类型,
要求调用参数也必须是 “串对象数组”,
new String[] 就是生生一个“串对象数组”,[0]表示元素个数为零。
谢谢了。
小赖赖
2011-10-26
打赏
举报
回复
return list.toArray(new String[0]);//这种方式效率最高
return list.toArray(new String[100]);//浪费了100个地址空间,以及申请空间的时间
return list.toArray(new String[500]);//浪费了500个地址空间,以及申请空间的时间
new String[0]就是起一个模板的作用
孟祥月
2011-10-26
打赏
举报
回复
学习了
g406824283
2011-10-26
打赏
举报
回复
[Quote=引用 9 楼 bcbplc 的回复:]
new String[0] 申请了0个对象?
new String[100] 申请了100个对象?
[/Quote]
不对吧,最终返回的String[]的长度是由string[]的length和list的size共同决定,如果length大于size则取length,如果length小于size就取size。有点绕...源码很清楚
g406824283
2011-10-26
打赏
举报
回复
有区别的。
比如list元素个数1,字符串数组初始化个数3,那么访问访问第2个元素返回null,
比如list元素个数3,字符串数组初始化个数1,那么访问访问第2个元素报错。
看toArray方法的定义。
[Quote=引用 8 楼 flagiris 的回复:]
String[0]确实不好理解,
我觉得这是sun设计的一个缺陷,
在这里
return(String[])list.toArray(new String[0]);
return(String[])list.toArray(new String[100]);
return(String[])list.toArray(new String[500]);
我记得好像没什么区别吧,……
[/Quote]
shaosijun2004
2011-10-26
打赏
举报
回复
[Quote=引用 9 楼 bcbplc 的回复:]
new String[0] 申请了0个对象?
new String[100] 申请了100个对象?
[/Quote]
toArray
<T> T[] toArray(T[] a)返回以正确顺序包含列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。遵守 Collection.toArray(Object[]) 方法的常规协定。
指定者:
接口 Collection<E> 中的 toArray
参数:
a - 要存储列表中元素的数组,如果它足够大的话;否则为此目的分配一个运行时类型相同的新数组。
返回:
包含列表中元素的数组。
抛出:
ArrayStoreException - 如果指定数组的运行时类型不是此列表中每个元素的运行时类型的超类型。
NullPointerException - 如果指定数组为 null
//我觉得doc写的很清楚了
xiongyu2006
2011-10-26
打赏
举报
回复
[Quote=引用 9 楼 bcbplc 的回复:]
new String[0] 申请了0个对象?
new String[100] 申请了100个对象?
[/Quote]
new String[0] -------长度为0
new String[100] ------长度为100,可以存100个String对象
这里的用new String[0]只是为了指定函数的形参数,最终返回的String[]的长度是由你的list存储内容的长度决定了。
BCBPLC
2011-10-26
打赏
举报
回复
new String[0] 申请了0个对象?
new String[100] 申请了100个对象?
菖蒲老先生
2011-10-26
打赏
举报
回复
String[0]确实不好理解,
我觉得这是sun设计的一个缺陷,
在这里
return(String[])list.toArray(new String[0]);
return(String[])list.toArray(new String[100]);
return(String[])list.toArray(new String[500]);
我记得好像没什么区别吧,
当然我也可能理解错了。。。
nizhicheng
2011-10-26
打赏
举报
回复
new String[0] 就是new出一个数组 [0] 是长度标示
xiongyu2006
2011-10-26
打赏
举报
回复
<T> T[] toArray(T[] a)需要一个T[] a,new String[0]相当于开辟了一个长度为0的String[],并且指定了泛型。这样函数的调用是将list转换了一个String的数组。
shaosijun2004
2011-10-26
打赏
举报
回复
<T> T[] toArray(T[] a);
泛型
会返回你一个list长度的String 类型的数组
Acesidonu
2011-10-26
打赏
举报
回复
[0]是数组长度为0啊
liwenso
2011-10-26
打赏
举报
回复
只是 一个类型标示,用来告诉toArray方法具体转化成什么类型。
list.toArray(new String[0]);//转化成String数组
list.toArray(new int[0]);//转化成int数组
BCBPLC
2011-10-26
打赏
举报
回复
new String[0] 这是什么含义呢,[0]表示什么?
nizhicheng
2011-10-26
打赏
举报
回复
return(String[])list.toArray(new String[0]); 肯定方法定义的返回类型是 String[]
list.toArray(new String[0]); 就是在做类型转换
还有不明白的地方吗?
Java
8 Lambda(
语法
,方法引用,目标类型和默认方法)
关于 本文介绍了
Java
SE 8中新引入的lambda语言特性以及这些特性背后的设计思想。...
Java
是一门面向
对象
编程语言。面向
对象
编程语言和函数式编程语言中的基本元素(Basic Values)都可以动态封装程序行为:面向
对象
...
Java
中collection.to
Array
(
new
String
[0])的
语法
解释
Collection的公有方法中,to
Array
()是比较重要的一个。 但是使用无参数的to
Array
()有一个缺点,就是转换后的数组类型是...
String
[]
string
Array
=
Array
s.copyOf(object
Array
, object
Array
.length,
String
[].class
Java
List
to
Array
(
new
String
[0]) 的理解&
List
的to
Array
()方法详解
2、利用set去除
list
里面重复的数据i ++) {}))//这种方式效率最高 return
list
. to
Array
(
new
String
[ 100 ]);...//浪费了500个地址空间,以及申请空间的时间
new
String
[ 0 ] 就是起一个模板的作用。
怎么
new
一个
String
数组,以数组的形式输出, 以及
语法
糖
简写(
语法
糖):对数组进行静态初始化时,可以省略关键字
new
除了
String
类型其他引用类型一样
String
[] str
Array
= {"aaa","bbb"}; 普通类型数组也一样: 编译器遇到 int a[] = {1, 2, 3}; 会编
java
8 lambda表达式
list
_
java
8新特性: lambda表达式:直接获得某个
list
/
array
/
对象
里面的字段集合...
java
8新特性: lambda表达式:直接获得某个
list
/
array
/
对象
里面的字段集合比如,我有一张表:entityCategory.
java
serviceCategoryService.
java
需求:我想获取CategoryService.fiall()查询出来的数据中的,所有...
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章