JAVA数组与List相互转换

Posted 思微随想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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); 

打印:[[[email protected]]

 如果你打算将一个基本类型的数组转换为所对应的封装类型的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()]);

  

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

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

在Java中,ArrayList与数组如何相互转换,写出例子

ArrayList和数组间的相互转换

Js 代码递归实现树形数据与数组相互转换。

Java中ArrayList与数组间相互转换

java中二维数组和ArrayList的相互转换