zoukankan      html  css  js  c++  java
  • JAVA数组与List相互转换

    1.数组转成List

    数组转成List可以用方法 :Arrays.asList,一起来了解一下

     System.out.println(Arrays.asList(new String[] { "a", "b" }));

    打印:[a, b]

    List<Integer> asList2 = Arrays.asList(new Integer[] { 1, 2 });
    System.out.println(asList2);

    打印:[1, 2]

    以下会得到非预期的结果

    List<int[]> asList = Arrays.asList(new int[] { 1, 2 });
    System.out.println(asList); 

    打印:[[I@4e25154f]

     如果你打算将一个基本类型的数组转换为所对应的封装类型的list,使用Apache Commons Lang吧,可能你的项目正在使用它,类似下面这样使用ArrayUtils.toObject:

    List<Integer> list = Arrays.asList(ArrayUtils.toObject(new int[] { 1, 2 }));
    System.out.println(list);

    打印:[1, 2]

    注意使用工具类Arrays.asList()把数组转成集合时,不能使用其修改集合的相关方法,它的add/remove/clear方法会抛出java.lang.UnsupportedOperationException异常。asList的返回对象是一个Arrays内部类,并没有实现集合的修改方法,后台的数据仍是数组,对数组的修改会影响到集合:

    String[] countries = { "China", "Russia", "American" };
    List<String> asList3 = Arrays.asList(countries);
    countries[2] = "France";
    System.out.println(asList3);

    打印:[China, Russia, France]

    2.List转成数组

    而List转成数组可以list的toArray(T[] array)方法,传入类型完全一样的数组,数组的大小传list.size()。

    List<String> fruits = new ArrayList<String>();
    fruits.add("Apple");
    fruits.add("Pear");
    fruits.add("Orange");
    String[] array = fruits.toArray(new String[fruits.size()]);
    

      

  • 相关阅读:
    威尔逊定理  知识点
    费马小定理及推论 知识点
    勾股定理和勾股数
    hdu6441 Find Integer (费马大定理)
    费马大定理
    莫队算法 [国家集训队]小Z的袜子
    R49 A-D D图有向有环图
    #505 1&2 A-C 后面未完成
    stack 的一些用法
    bzoj 2844 albus就是要第一个出场 异或和出现次数 线性基
  • 原文地址:https://www.cnblogs.com/foxting/p/9400274.html
Copyright © 2011-2022 走看看