开发者社区 问答 正文

Java使用集合转数组的方法有什么要求?

Java使用集合转数组的方法有什么要求?

展开
收起
鲁花花生油 2021-10-12 17:16:13 696 分享 版权
1 条回答
写回答
取消 提交回答
  • 使用集合转数组的方法,必须使用集合的 toArray(T[] array),传入的是类型完全一样的数组,大小就是 list.size()。

    说明:使用 toArray 带参方法,入参分配的数组空间不够大时,toArray 方法内部将重新分配内存空间,并返回新数组地址;如果数组元素大于实际所需,下标为[ list.size() ]的数组元素将被置为 null,其它数组元素保持原值,因此最好将方法入参数组大小定义与集合元素个数一致。

    正例:

    List list = new ArrayList (2);

    list.add("guan");

    list.add("bao");

    String[] array = new String[list.size()];

    array = list.toArray(array);

    反例:直接使用 toArray 无参方法存在问题,此方法返回值只能是 Object[]类,若强转其它类型数组将出现 ClassCastException 错误。

    资料来源:电子书《阿里巴巴Java开发手册》,下载链接:https://developer.aliyun.com/topic/download?id=1092

    2021-10-12 17:17:59
    赞同 展开评论