java中 我想把集合转化为数组

java中我想把集合转化为数组List<String>list=newArrayListString[]str=(String[])list.toArray为什么前面语言... java中 我想把集合转化为数组List<String> list=new ArrayList
String[] str=(String [])list.toArray
为什么前面语言添加String[]
是java规定的还是有什么特殊原因吗?
toArray不就是将集合转化为数组吗?
为什么还要强转呢?
展开
 我来答
尉穹4w
推荐于2017-11-23 · TA获得超过453个赞
知道小有建树答主
回答量:353
采纳率:36%
帮助的人:150万
展开全部

List<String> list=new ArrayList<String>();
list.add("aa");
list.add("bb");

String[] targetArr=new String[list.size()];
list.toArray(targetArr);
for(String s:targetArr){
System.out.println(s);
}

推荐上面这样写。要是按你那这样写的话,转完是Object[] arr,如果这个时候你把它强制转为String[] 类型会报错。

百度网友b1fa122
2016-11-24 · TA获得超过893个赞
知道大有可为答主
回答量:1059
采纳率:100%
帮助的人:1024万
展开全部
list.toArray()返回的是Object[]对象,所以要强制转换成String[]才能赋值给String[] str
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
javaa之歌
2016-11-24 · TA获得超过314个赞
知道小有建树答主
回答量:741
采纳率:0%
帮助的人:150万
展开全部
String[] str=list.toArray;你直接这样写的时候报错了额然后你加了强转(String [])对吧?
首先你的list集合要是里面有数据的话 你可以尝试这样写String[] str=list.toArray(new String[list.size()]); 看看行不行
更多追问追答
追问
我知道这么写是可以的 我想知道第一种为啥不行
追答
有人回答了呢   toArray()返回的不是string型的数组 要强制转换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式