zoukankan      html  css  js  c++  java
  • 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));
        }
    
    }
    
  • 相关阅读:
    LinkedList源码浅析
    ArrayList/Vector/Stack底层分析
    遮罩层
    重写alert方法,去掉地址显示
    继承属性的函数
    为什么手机网页点击输入框的瞬间会出现灰色背景呢?怎么去掉灰色背景?
    伪类before和after
    五星好评
    String[]字符串数组,按字典顺序排列大小
    jquery ajax的load()方法和load()事件
  • 原文地址:https://www.cnblogs.com/keeya/p/11064327.html
Copyright © 2011-2022 走看看