黑马程序员技术交流社区
标题:
ArrayList转字符串
[打印本页]
作者:
马上都有
时间:
2014-5-20 18:12
标题:
ArrayList转字符串
public void demo()
{
ArrayList<String> al = new ArrayList<String>();
al.add("abc1");
al.add("abc2");
al.add("abc3");
String[] arr = al.toArray(new String[al.size()]),
}
把集合中的元素转化成字符串数组,不是al.toArray()就可以吗?
为什么还要new String[al.size()]呢?帮忙解释解释。
作者:
观决
时间:
2014-5-20 18:36
本帖最后由 观决 于 2014-5-20 18:39 编辑
QQ截图20140520183545.jpg
(57.31 KB, 下载次数: 83)
下载附件
2014-5-20 18:36 上传
api里面有啊 不加及时Object 下面那个加了泛型 那个里面size api也说得很清楚 小了会自动补全 多了就多了
作者:
Blackay
时间:
2014-5-20 20:46
因为你用了泛型啊 为了保证类型不能变 要new一个String类型的数组
作者:
周俊波
时间:
2014-5-20 21:30
你的数组定义的是Sting类型的,而这个toArray方法是用到了泛型的,使用需要加上String类型,al.size是指新的数组大小
作者:
艮昕辶
时间:
2014-5-21 17:05
String[] arr = al.toArray(new String[al.size()]),
你的这句话也可以写成String[] arr = al.toArray(new String[]{});
作者:
Hosing
时间:
2014-7-3 16:09
什么是泛型呀?路过......
作者:
慕杰
时间:
2014-7-3 16:48
如果不加new String[al.size()],就必须在al.toArray()前面强转成String[]类型的数组
作者:
wisely
时间:
2014-7-3 17:53
由于泛型。
不过在这个事例中,用al.toArray(new String[])与al.toArray()没有什么区别,即便是Collections.toString(al)打印也看不出区别。这是因为String类复写了toString()方法,如果换成没有复写的toString()方法的类,那可能就要悲剧了。
有没有画蛇添足?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2