当前位置: 代码迷 >> 综合 >> List与Array之间的互相转换(asList()和toArray())方法
  详细解决方案

List与Array之间的互相转换(asList()和toArray())方法

热度:78   发布时间:2023-11-25 23:15:09.0

数组转换成List集合:

利用java中集合自带的asList()方法:

List集合转换成数组:

注意点:

原因:


数组转换成List集合:

利用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集合转换成数组:

注意点:

采用集合的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]);
    }

  相关解决方案