java中的toArray()
toArray有两个方法:不带参数和带参数
public Object[] toArray() { Object[] result = new Object[size]; System.arraycopy(elementData, 0, result, 0, size); return result; }
不带参数的toArray方法,是构造的一个Object数组,然后进行数据拷贝,此时进行转型就会产生ClassCastException(类型转换的锅)。
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; }
带参数的toArray方法,则是根据参数数组的类型,构造了一个对应类型的,长度跟ArrayList的size一致的空数组,虽然方法本身还是以 Object数组的形式返回结果,不过由于构造数组使用的ComponentType跟需要转型的ComponentType一致,就不会产生转型异常。
因此在使用toArray的时候可以参考以下两种方式
String[] str = new String[list.size()];
list.toArray(str);String[] str = (String[])list.toArray(new String[list.size()]);
转载于:https://www.cnblogs.com/wkcode/p/10347183.html
java中的toArray()相关推荐
- Java中collection.toArray(new String[0])、resultSet.toArray(new Integer[0])、Set.toArray()new 数组的性能比较
一.在调用Set的toArray()方法的时候 在使用HashMap的时候,它的keySet()方法将返回一个Set集合 且Set是继承自Collection的,在使用toArray()的时候其实转换 ...
- java中Array和ArrayList区别
2019独角兽企业重金招聘Python工程师标准>>> 1)精辟阐述: 可以将 ArrayList想象成一种"会自动扩增容量的Array". 2)Array([] ...
- 【Java学习笔记之十】Java中循环语句foreach使用总结及foreach写法失效的问题
foreach语句使用总结 增强for(part1:part2){part3}; part2中是一个数组对象,或者是带有泛性的集合. part1定义了一个局部变量,这个局部变量的类型与part2中的对 ...
- Java中ArrayList源码分析
一.简介 ArrayList是一个数组队列,相当于动态数组.每个ArrayList实例都有自己的容量,该容量至少和所存储数据的个数一样大小,在每次添加数据时,它会使用ensureCapacity()保 ...
- Java中深浅拷贝之List
List的浅拷贝 浅拷贝将引用复制.指向的是同一个地址,改变A和B中的任何一个,另一个都会随之发生变化. List浅拷贝(针对List里 装的是对象-----"引用"[基础类型不分 ...
- Java中实现cd命令:运行中更改当前工作目录
2019独角兽企业重金招聘Python工程师标准>>> 因为一些原因,想在Java中模拟部分Shell命令的功能,比如cd.pwd.ls等. 实现pwd很简单,返回System.ge ...
- 如何在Java中生成特定范围内的随机整数?
如何生成特定范围内的随机int数值? 我已经尝试了以下方法,但是这些方法不起作用: 尝试1: randomNum = minimum + (int)(Math.random() * maximum); ...
- opencv 裁剪 java_如何在opencv java中裁剪检测到的面部图像
我在 java中使用opencv 2.4.10检测到图像中的面部 我把我的面部检测代码. import org.opencv.core.Core; import org.opencv.core.Mat ...
- 5 java中的集合类_java基础(5)-集合类1
集合的由来 数组是很常用的一种数据结构,但假如我们遇到以下这样的的问题: 容器长度不确定 能自动排序 存储以键值对方式的数据 如果遇到这样的情况,数组就比较难满足了,所以也就有了一种与数组类似的数据结 ...
最新文章
- 【网络编程】epoll 笔记
- 求马鞍点java_二维数组马鞍点求解算法
- 包含min函数的栈 大坑
- php 控制304,php静态文件返回304技巧分享
- list和tuple
- pythonturtle画点的指令_简述python的turtle绘画命令及解释
- python怎么打开excel文件并处理_python处理excel文件
- 共用体知识及 I - 共用体练习
- python药店销售数据分析_解析医院药店销售数据,看看Python数据分析结果有什么惊人的发现|python基础教程|python入门|python教程...
- Linux下如何使用gcc编译器,Linux下gcc编译器的使用总结
- 重t2加权是什么意思_魔兽世界怀旧服:详解盗贼T2.5套装,别犹豫真香
- 射线 ray linerender spotlight
- 002 如何将电子版一寸照以照片的方式打印出来
- groovy定义变量获取当前时间_groovy变量 - Groovy教程
- 计算机桌面来回闪烁,Windows10系统电脑屏幕一直闪烁的解决方案
- ansiblea基本使用
- IM敏感词算法原理和实现
- java long转日期,long转String
- pandas 数据怎样实现行间计算
- 《C语言基础学习笔记》—— 黑马程序员 <Part1-4>
热门文章
- Windows下批处理if exist用法的注意事项
- Mysql表连接:内连接、外连接、交叉连接、自然连接真的都不一样吗
- 获取不到Gist id?解决gist.github.com无法访问的办法
- GPGPU渲染GPU的工作原理和认知总结
- CanOpen and EtherCAT
- 简单音乐播放器html+css+基础vue+含源码,有搜索和播放mv功能,代码可直接复制用。
- 5月份华为认证考试,100%通过率!最高分九百多!
- bash alias命令03
- 秋招算法岗,面试复盘
- 重启mysql的命令 linux_linux重启mysql命令