ArrayList提供了一个将List转为数组的一个非常方便的方法toArray。toArray有两个重载的方法:

1.list.toArray();

2.list.toArray(T[]  a);

对于第一个重载方法,是将list直接转为Object[] 数组;

第二种方法是将list转化为你所需要类型的数组,当然我们用的时候会转化为与list内容相同的类型。

不明真像的同学喜欢用第一个,是这样写:

ArrayList list=new ArrayList();

for (int i = 0; i < 10; i++) {

list.add(""+i);

}

String[] array= (String[]) list.toArray();

结果一运行,报错:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

原因一看就知道了,不能将Object[] 转化为String[].转化的话只能是取出每一个元素再转化,像这样:

Object[] arr = list.toArray();

for (int i = 0; i < arr.length; i++) {

String e = (String) arr[i];

System.out.println(e);

}

所以第一个重构方法就不是那么好使了。

实际上,将list世界转化为array的时候,第二种重构方法更方便,用法如下:

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

list.toArray(array);

另附,两个重构方法的源码:

1.

public Object[] toArray(); {

Object[] result = new Object[size];

System.arraycopy(elementData, 0, result, 0, size);;

return result;

}

2.

public Object[] toArray(Object a[]); {

if (a.length < size);

a = (Object[]);java.lang.reflect.Array.newInstance(

a.getClass();.getComponentType();, size);;

System.arraycopy(elementData, 0, a, 0, size);;

if (a.length > size);

a[size] = null;

return a;

}

java arraylist to array_ArrayList的toArray相关推荐

  1. Java ArrayList到数组

    Sometimes we have to convert ArrayList to Array in java program. Today we will look into different j ...

  2. Java ArrayList 类

    ArrayList 类继承了 AbstractList 并实现了 List 接口. ArrayList 支持可以根据需要增长的动态数组. 标准 Java 数组是固定长度的. 数组创建后不能增长或缩小, ...

  3. Java ArrayList 类(详解)

    ArrayList 一.ArrayList 是什么? 二.Java ArrayList 方法 三.案例演示 结果: 一.ArrayList 是什么? ArrayList 类是一个可以动态修改的数组,与 ...

  4. Java ArrayList的遍历

    Java ArrayList的遍历 1.for循环遍历 2.将链表转换为数组,然后遍历 3.使用迭代器进行遍历 1.for循环遍历 import java.util.ArrayList; import ...

  5. java arraylist的问题

    java arraylist的问题 不得不说,我犯了错,很基础的.. 遍历list的时候可以删除数组元素吗? 答案是:简单/增强for循环不可以,list.iterator()这样的方式就可以. 我之 ...

  6. java arraylist 函数_Java Extend ArrayList函数

    让我说我有 class Dummy { String a, b; public Dummy(String a, String b) { this.a = a; this.b = b; } public ...

  7. java arraylist初始大小_Java - ArrayList默认初始值

    当您在Java中创建Integer类型的数组列表时,默认值是什么?我需要检查一个数组列表是否已满,然后我将获取数组的大小,然后获取最后一个索引处的值,并检查它是否为默认值.Java - ArrayLi ...

  8. Java Arraylist 如何使用 Comparator排序

    Java Arraylist 如何使用 Comparator排序import java.util.ArrayList; import java.util.Collections; import jav ...

  9. java arraylist .get_Java ArrayList get()方法

    Java ArrayList get()方法 java.util.ArrayList.get(int index) 方法返回在ArrayList中的指定位置的元素. 1 语法 public E get ...

最新文章

  1. [转]java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?
  2. 【译】Why Decentralized AI Matters Part I: Economics and Enablers
  3. php编写猜拳游戏,Python中猜拳游戏与猜筛子游戏的实现方法
  4. 神奇却又随处可见的斐波那契曲线...
  5. JVM类加载机制_字节码执行引擎_Java内存模型
  6. oracle sql 分区查询语句_Oracle 分区概述
  7. 单处理机系统的进程调度实验_Chcore -- 上交IPADS操作系统银杏书配套Lab实验笔记 - Lab3进程与异常(一)...
  8. 《天天数学》连载24:一月二十四日
  9. c语言分治法求众数重数_分治法求众数 - osc_twlari2q的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. Keil5配置GCC编译器编译STM32工程
  11. 【体系结构】共享SQL的理解
  12. linux/ubuntu下简单好用的python opencv安装教程 ( 解决 imshow, SIFT, SURF, CSRT使用问题)
  13. sqlite3 语法
  14. Unity连接本地数据库sqlite
  15. Django SimpleCMDB API
  16. 学习时有必要做思维导图吗?
  17. 架构运维篇(一):Centos7/Linux安装jdk环境
  18. Symfony2Book16:Symfony2内部03-事件调度
  19. 正四边形单元刚度矩阵与其尺寸关系
  20. Java 内部类与外部类的关系

热门文章

  1. python 获取文本框内容_如何在python中单击按钮时获取文本框中的文本?
  2. 3个月带货5000万,那些隐藏在小众赛道的“大生意”
  3. NFT游戏Axie Infinity带来新希望
  4. 教你用开源 JS 库快速画出 GitHub 章鱼猫
  5. Android 自定义view onMeasure() 方法剖析
  6. Linux—top命令详解
  7. 基于vert.x与webSocket的简单聊天系统
  8. 如何在mojave深色主题下显示浅色窗口?让你的mac在mojave深色主题下依然显示浅色窗口
  9. Redis高级项目实战,适合java开发的笔记本电脑
  10. ThreeJS动态加载div标签