一、业务场景
在开发过程中遇到过将数组转list的场景,当然有很多方式,比如最常见的for循环遍历添加等
本篇介绍一下Arrays.asList() 方法将数组转list集合
该方法是将数组转化成List集合的方法。
/**
* 2021-7-25 13:10:07
* 辰兮要努力
*/
public class ListDemo {
public static void main(String[] args) {
String [] nameArr ={"辰兮", "辰兮要努力", "ChenXi"};
//数组转集合
List<String> nameList = Arrays.asList(nameArr);
System.out.println(nameList);
}
}
输出结果
[辰兮, 辰兮要努力, ChenXi]
Arrays.asList此方法有部分弊端,转换出来的集合仅仅只能用来遍历操作,不能新增、删除元素
二、案例实践
1、注意事项:用此方法得到的List的长度是不可改变的
我们都知道数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度。
补充讲解:由此方法转换而来的list集合:不支持add和remove方法
如果你要对此转换而来的集合进行新增和删除元素,程序会爆出UnsupportedOperationException异常
Exception in thread "main" java.lang.UnsupportedOperationException
原因:此方法返回的ArrayList不是java.util包下的,而是java.util.Arrays.ArrayList
它是Arrays类自己定义的一个静态内部类,这个内部类没有实现add()、remove()方法,而是直接使用它的父类AbstractList的相应方法。
而AbstractList中的add()和remove()是直接抛出java.lang.UnsupportedOperationException异常的!
总结:
1、如果返回给你的集合你进需要进行遍历操作,就用Arrays.asList()。
2、如果你想对转换来的集合进行新增或移除的相关操作,建议采取其它方法,如遍历后,逐个添加
2、该方法不适用于基本数据类(byte,short,int,long,float,double,boolean)
/**
* 2021-7-28 23:27:05
* 辰兮要努力
*/
public class ListDemo {
public static void main(String[] args) {
//基本数据类型结果打印为一个元素
int[] i ={11,22,33};
List ints = Arrays.asList(i);
for(Object o:ints){
System.out.println(o.toString());
}
System.out.println("------------------------");
Integer[] integers = {11,22,33};
List<Integer> integerList = Arrays.asList(integers);
for(int a:integerList){
System.out.println(a);
}
System.out.println("------------------------");
}
}
3、该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新
/**
* 2021-7-28 23:27:10
* 辰兮要努力
*/
public class ListDemo {
public static void main(String[] args) {
Integer[] integers = {11,22,33};
List<Integer> integerList = Arrays.asList(integers);
for(int a:integerList){
System.out.println(a);
}
System.out.println("------------------------");
integerList.set(0,2021);
for (int i1 = 0; i1 < integers.length; i1++) {
System.out.println(integers[i1]);
}
}
}
遍历原数组输出结果如下
后续我会陆续整理更多关于Java对基础数据操作的相关方法或语法,争取输出更多有趣的文章
期待有更多的进步!
---
非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!
愿你们奔赴在自己的热爱里!