A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 钟伟杰 中级黑马   /  2013-4-24 01:18  /  1738 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 钟伟杰 于 2013-4-24 10:29 编辑

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()]呢?帮忙解释解释。

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

4 个回复

倒序浏览
你这样写也是可以的,al.toArray()这样写是返回按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;
al.toArray(new String[al.size()]):按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。
回复 使用道具 举报
你这样写也是可以的,al.toArray()这样写是返回按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;
al.toArray(new String[al.size()]):按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

回复 使用道具 举报
你可以去看一下API,String[] arr = al.toArray(new String[al.size()]),
这一句就是调用了toArray()方法啊,
如果你直接用al.toArray();转换类型会出错的,
而你用的方法,返回数组的运行时类型是指定数组的运行时类型。
回复 使用道具 举报
ArrayList<E> 类中提供了两个把List转换成数组的方法,其中 Object[] toArray() ,不带有参数,返回数组的类型是Object类型的。而<T> T[]   toArray(T[] a) ,用已经指定类型的数组作为参数,返回的是T类型的数组。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马