Java中数组与集合的相互转换


数组与List的相互转换

  • List转数组:采用集合的toArray()方法
  • 数组转List:采用Arrays的asList()方法

数组转换为集合

注意:在数组转集合的过程中,要注意是否使用了视图的方式直接返回数组中的数据。以Arrays.asList()为例,它把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出 UnsupportedOperationException异常。

这是因为Arrays.asList体现的是适配器模式,后台的数据仍是原有数组。asList的返回对象是一个Arrays的内部类,它并没有实现集合个数的相关修改操作,这也是抛出异常的原因。

集合转数组

集合转数组相对简单,一般在适配别人接口的时候常常用到

代码例子

public class Main {
    public static void main(String[] args) {

        //1.数组转换为集合
        String[] strs = new String[3];
        strs[0] = "a";
        strs[1] = "b";
        strs[2] = "c";
        List<String> stringList = Arrays.asList(strs);
        System.out.println(stringList);
        //1.1注意:直接使用add、remove、clear方法会报错
//        stringList.add("abc");
        //1.2如果想要正常的使用add等修改方法,需要重新new一个ArrayList
        List<String> trueStringList = new ArrayList<>(Arrays.asList(strs));
        trueStringList.add("abc");
        System.out.println(trueStringList);

        //2.集合转数组
        List<Integer> integerList = new ArrayList<>();
        integerList.add(1);
        integerList.add(2);
        integerList.add(3);

        //新生成的数组大小一定要大于原List的大小
        Integer[] integers = new Integer[3];
        integerList.toArray(integers);
        System.out.println(Arrays.asList(integers));
    }

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM