更新时间:2020-03-23 12:38:22 来源:极悦 浏览1970次
通过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合并数组”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习