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]);//使用了第二种接口,好用!
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中list,set,数组之间的转换
- Java List与数组之间的转换
- java list与数组之间的转换详细解析
- Java List与数组之间的转换
- JAVA中list,set,数组之间的转换详解
- Java数组Array与列表List之间的转换
- JAVA中list,set,数组之间的转换详解
- java字符串、字符串数组、list之间的转换
- [java]关于数组和List之间相互转换的方法
- Java List与数组之间的转换
- Java List与数组之间的转换
- JAVA List、Map、Set、数组之间转换
- JAVA中list,set,map与数组之间的转换详解
- JAVA的list,set,数组之间的转换
- 安卓开发——Java 数组与List之间的转换方法
- [java]关于数组和List之间相互转换的方法
- java list与数组之间的转换详细解析
- Java List与数组之间的转换
- JAVA中list,set,数组之间的转换详解
- java类型list、set、数组、map之间的转换