通过Arrays.asList(T…a)将数组转换为List,转换后的List只能进行查改,不能进行增删,否则就会跑出异常。
代码演示:
importjava.util.Arrays;
importjava.util.List;
/**
*@ClassNameArrayToList
*@DescriptionTODO
*@AuthorDD
*@Date2019/8/610:19
*@Version5.0
**/
publicclassArrayToList{
publicstaticvoidmain(String[]args){
String[]sArray=newString[5];
List<String>list=Arrays.asList(sArray);
//添加一个元素
list.add("test");
System.out.println(list);
}
} 运行结果:
Exceptioninthread"main"java.lang.UnsupportedOperationException atjava.util.AbstractList.add(AbstractList.java:148) atjava.util.AbstractList.add(AbstractList.java:108) atlottery.ArrayToList.main(ArrayToList.java:19)
这里在转换之后调用add方法时直接报了一个UnsupportedOperationException异常。
源码分析:

通过源码分析可以看到,Arrays.asList(sArray)方法返回的是Arrays类里面的一个静态内部类java.util.Arrays.ArrayList,java.util.Arrays.ArrayList类具有get、set、contains等方法,但是并没用重写add、remove方法,所以调用add方法时会报错!
其它做法:
importjava.util.ArrayList;
importjava.util.Arrays;
importjava.util.Collections;
importjava.util.List;
/**
*@ClassNameArrayToList
*@DescriptionTODO
*@AuthorDD
*@Date2019/8/610:19
*@Version5.0
**/
publicclassArrayToList{
publicstaticvoidmain(String[]args){
//第一种
String[]sArray=newString[5];
List<String>list=newArrayList<>(Arrays.asList(sArray));
list.add("test");
System.out.println(list);
//第二种
List<String>list1=newArrayList<String>(5);
Collections.addAll(list1,sArray);
list1.add("test");
System.out.println(list1);
}以上就是动力节点Java培训机构小编介绍的“Java基础学习:Java合并数组”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习