JAVA数组与List相互转换
2024-08-24 22:26:29
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()]);
最新文章
- 应用SqlGeometry无法加载sqlserverspatial.dll
- 理解AUC
- Discuz!模板解析语法
- Mysql学习笔记(一)
- 【git】删除某个文件的所有历史记录,批量删除远程分支
- EMCA创建em资料库时报错
- 四、cocos2dx动画Animation介绍
- Asp.net实现URL重写
- Leetcode 12——Integer to Roman
- 2017北京国庆刷题Day1 afternoon
- react dnd demo2
- 如果需要精确的答案,请避免使用float和double
- 新年第一个目标一张表盘串讲所有canves的知识点
- C++ vector 容器浅析
- GDAL对TIF创建内建金字塔一个问题
- Combination Sum leetcode java
- 《剑指offer》第三十五题(复杂链表的复制)
- springboot入门(一)--快速搭建一个springboot框架
- Linux skbuff注释笔记
- git工具 将源码clone到本地指定目录的三种方式