List集合与Array数组之间的互相转换

Posted Holyday

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了List集合与Array数组之间的互相转换相关的知识,希望对你有一定的参考价值。

数组转换成List集合

  • 方法一 
    笨方法就是通过add把数组中的数据循环添加到List集合中
    List<String> mlist = new ArrayList<>();
    String[] array = new String[] {"zhu", "wen", "tao"};
    // String数组转List集合
    for (int i = 0; i < array.length; i++) {
        mlist.add(array[i]);
    }
    // 输出List集合
    for (int i = 0; i < mlist.size(); i++) {
        System.out.println("mlist-->" + mlist.get(i));
    }

 

  • 方法二 
    采用java中集合自带的asList()方法就可以完成转换了
    String[] array = new String[] {"zhu", "wen", "tao"};
    // String数组转List集合
    List<String> mlist = Arrays.asList(array);
    // 输出List集合
    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()];
    // List转换成数组
    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");
    // List转成数组
    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等不是对象,所以需要用字段的对应对象类

以上是关于List集合与Array数组之间的互相转换的主要内容,如果未能解决你的问题,请参考以下文章

Java: 数组列表和集合的互相转换

数组和常用集合之间的相互转换

java中 set,list,array(集合与数组)相互转换

服务器系列(23):tensor、numpy.array、list三者之间互相转换

Kotlin集合操作 ④ ( Set 集合 | 可变 Set 集合 | List 与 Set 之间相互转换 | 数组类型 )

Kotlin集合操作 ④ ( Set 集合 | 可变 Set 集合 | List 与 Set 之间相互转换 | 数组类型 )