数组转换成List集合
方法一 笨方法就是通过add把数组中的数据循环添加到List集合中
List<String> mlist = new ArrayList<>();
String[] array = new String[] {"zhu" , "wen" , "tao" };
for (int i = 0 ; i < array .length; i++) {
mlist.add(array [i]);
}
for (int i = 0 ; i < mlist.size(); i++) {
System.out.println("mlist-->" + mlist.get(i));
}
方法二 采用java中集合自带的asList()方法就可以完成转换了
String[] array = new String[] {"zhu" , "wen" , "tao" };
List<String> mlist = Arrays.asList(array);
for (int i = 0 ; i < mlist.size(); i++) {
System.out .println("mlist-->" + mlist.get (i));
}
List集合转换成数组
方法一 笨方法是把List中的数据循环添加到数组中
List<String> mlist = new ArrayList<>();
mlist.add("zhu" );
mlist.add("wen" );
mlist.add("tao" );
String[] array = new String[mlist.size()];
for (int i = 0 ; i < mlist.size(); i++) {
array [i] = mlist.get(i);
}
for (int i = 0 ; i < array .length; i++) {
System.out.println("array--> " + array [i]);
}
方法二 采用集合的toArray()方法直接把List集合转换成数组,这里需要注意,不能这样写: String[] array = (String[]) mlist.toArray(); 这样写的话,编译运行时会报类型无法转换java.lang.ClassCastException的错误,这是为何呢,这样写看起来没有问题啊 因为java中的强制类型转换是针对单个对象才有效果的,而List是多对象的集合,所以将整个List强制转换是不行的 正确的写法应该是这样的 String[] array = mlist.toArray(new String[0]);
List <String> mlist = new ArrayList<>();
mlist.add("zhu" );
mlist.add("wen" );
mlist.add("tao" );
String[] array = mlist.toArray(new String[0 ]);
for (int i = 0 ; i < array .length; i++) {
System.out.println("array--> " + array [i]);
}
不管是数组转换成集合,还是集合转换成数组,都要注意转换类型的一致性,String[]数组转String类型的集合,当需要使用int,double等集合的时候,需要使用对应的对象 如:数组int[]用Integer[],double[]用Double[] 因为List集合是对象的集合,而int、double等不是对象,所以需要用字段的对应对象类