您的位置:首页 > 编程语言 > Java开发

Java List与数组之间的转换 - CSDN博客(转载整合)

2018-03-14 16:53 225 查看
注意
List 集合给我们提供了一个把LIst转为数组的方法,   
toArray();但是这个方法返回的类型是      Object[ ] ;如果我们要是想强转为我们想要的类型,比如说是字符串数组类型 ...

采用集合的toArray()方法直接把List集合转换成数组,这里需要注意,不能这样写:
String[] array = (String[]) mlist.toArray();
这样写的话,编译运行时会报类型无法转换java.lang.ClassCastException的错误,这是为何呢,这样写看起来没有问题啊
因为java中的强制类型转换是针对单个对象才有效果的,而List是多对象的集合,所以将整个List强制转换是不行的
正确的写法应该是这样的
String[] array = mlist.toArray(new String[0]);

不管是数组转换成集合,还是集合转换成数组,都要注意转换类型的一致性,String[]数组转String类型的集合,当需要使用int,double等集合的时候,需要使用对应的对象
如:数组int[]用Integer[],double[]用Double[]
因为List集合是对象的集合,而int、double等不是对象,所以需要用字段的对应对象类

例子如下:

List<String> list = new ArrayList<String>();  
list.add("str1");  
list.add("str2");  
int size = list.size();  
String[] arr = (String[])list.toArray(new String[size]);//使用了第二种接口,好用!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java集合框架