龙空技术网

Java数组转集合方法对比,作为程序员的您真的知道吗?

程序员Share 193

前言:

此刻大家对“java数组转换”大概比较注重,你们都需要知道一些“java数组转换”的相关知识。那么小编也在网摘上搜集了一些关于“java数组转换””的相关内容,希望你们能喜欢,同学们一起来了解一下吧!

通过Arrays.asList(T… a)将数组转换为List,转换后的List只能进行查改,不能进行增删,否则就会跑出异常。

代码演示:

import java.util.Arrays;import java.util.List;/** * @ClassName ArrayToList * @Description TODO * @Author DD * @Date 2019/8/6 10:19 * @Version 5.0 **/public class ArrayToList { public static void main(String[] args) { String[] sArray = new String[5]; List<String> list = Arrays.asList(sArray); // 添加一个元素 list.add("test"); System.out.println(list); }}

运行结果:

Exception in thread "main" java.lang.UnsupportedOperationException	at java.util.AbstractList.add(AbstractList.java:148)	at java.util.AbstractList.add(AbstractList.java:108)	at lottery.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方法时会报错!

其它做法:

import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;/** * @ClassName ArrayToList * @Description TODO * @Author DD * @Date 2019/8/6 10:19 * @Version 5.0 **/public class ArrayToList { public static void main(String[] args) { //第一种 String[] sArray = new String[5]; List<String> list = new ArrayList<>(Arrays.asList(sArray)); list.add("test"); System.out.println(list); //第二种 List<String> list1 = new ArrayList<String>(5); Collections.addAll(list1,sArray); list1.add("test"); System.out.println(list1); }}
关注

感谢阅读,如果这篇文章帮助了您,欢迎 点赞 ,收藏,关注,转发 哟。您的帮助是我们前行的动力,我们会提供更多有价值的内容给大家... 谢谢!

标签: #java数组转换