toArray()方法使用说明
ArrayList提供了一个将List转为数组的一个非常方便的方法toArray。toArray有两个重载的方法:
1.list.toArray();
2.list.toArray(T[] a);
对于第一个重载方法,是将list直接转为Object[] 数组;
第二种方法是将list转化为你所需要类型的数组,当然我们用的时候会转化为与list内容相同的类型。
不明真像的同学喜欢用第一个,是这样写:
1
2
3
4
5
6
7
|
ArrayList<String> list= new ArrayList<String>();
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[].转化的话只能是取出每一个元素再转化,像这样:
1
2
3
4
5
|
Object[] arr = list.toArray();
for ( int i = 0 ; i < arr.length; i++) {
String e = (String) arr[i];
System.out.println(e);
}
|
所以第一个重构方法就不是那么好使了。
实际上,将list世界转化为array的时候,第二种重构方法更方便,用法如下:
1
2
|
String[] array = new String[list.size()];
list.toArray(array);
|
特别注意:
int[] i = new int[set.size()]; //报错
Integer[] i =new Integer[set.size()]; //正确
i.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;
}
toArray()方法使用说明相关推荐
- list子类使用toarray方法实现集合向数组转换,下列哪些说法是正确的
单选 list子类使用toarray方法实现集合向数组转换,下列哪些说法是正确的:答案在文末 A. Vector无法使用toArray转换成数组. B. 优先推荐:调用集合类的方法toArray(T[ ...
- java中List的toArray方法
把List转换成某种类型的数组,就拿String类型来做例子吧,有以下两种方式: //方法1,使用不带参数的toArray方法 String[] arr1=new String[list.size() ...
- 关于Arrays类中toArray方法的总结
学了差不多两年的Java,数组类Arrays应该是我最常用到的类之一了,在整个学习的过程中,会更常用到一个方法,那就是toArray方法,因为将Collections类型的集合转化为数组后,将会更容易 ...
- List转数组toArray方法
一.List.toArray方法 List提供了一个将List转为数组的一个非常方便的方法toArray.toArray有两个重载的方法: Object[] toArray() ...
- 有关ArrayList的toArray()方法的一些探究
ArrayList的创建与toArray()方法 先上两段代码,大家自己感受下 List<String> list1 = Arrays.asList("abc");// ...
- PHP中的方形按钮怎么敲,php 魔术方法使用说明
php 魔术方法使用说明 2021-01-23 20:13:0612 PHP5.0后,php面向对象提成更多方法,使得php更加的强大!! 一些在PHP叫魔术方法的函数,在这里介绍一下:其实在一般的应 ...
- c# Dictionary 中Keys.ToArray方法的细节测试
/// <summary>/// dic.Keys.ToArray<>方法生成数组的顺序和dic中的顺序相同/// </summary>public static ...
- turtle.write方法使用说明
turtle.write方法使用说明 关于turtle可参见 Python的turtle模块https://blog.csdn.net/cnds123/article/details/10825286 ...
- List的toArray方法强制转换
List的toArray方法强制转换 List容器类中有一个toArray()的方法,该方法是用来把List转化为数组的. 这个方法有一个特点就是转化出来的数组是复制了原数据的一个副本而不只是原数据的 ...
最新文章
- jwt怎么获取当前登录用户_spring oauth2如何获取当前登录用户信息
- (Eclipse)(STM32) STM32在Eclipse編程
- 微信小程序开发(1)
- php.ini 只读,disabled by the php.ini setting phar.readonly
- [sqlite] db-journal文件产生原因及说明
- Octotree:一款超实用的GitHub可视化代码树插件
- windows server 2008下载及序列号
- STM32F4 RTC详解
- 一篇全面的CSS布局学习指南 [译]
- nyoj71 独木舟上的旅行
- 年底谷歌扎堆升职,L3到L6升一级多$10w
- Android实训-家庭财务管理系统
- REVIT建模如何 一键生成局部三维视图
- 【SAP Abap】记录一次增强开发之销售交货开票VF04增强
- 朗读者李晓云清华大学计算机,世界杰出女科学家奖得主张弥曼现身《朗读者》...
- kl变换简单的解释入门_2010年20个最佳入门指南解释者主题
- Qt Creator 配置中文输入法
- 数字经济浪潮澎湃,怎样赢得下一个十年?
- Centos7.9、Ubuntu操作系统图文安装
- qwq。。胡诌qwq