java 字符串转数组_Java数组转集合方法对比,作为程序员的您真的知道吗?

ff84f77810dcf057666b386903dc26dc.png

通过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 list = Arrays.asList(sArray); // 添加一个元素 list.add("test"); System.out.println(list); }}

运行结果:

Exception in thread "main" java.lang.UnsupportedOperationExceptionat java.util.AbstractList.add(AbstractList.java:148)at java.util.AbstractList.add(AbstractList.java:108)at lottery.ArrayToList.main(ArrayToList.java:19)

这里在转换之后调用add方法时直接报了一个UnsupportedOperationException异常。

源码分析:

d06f34ab0b95fd5ad01699d835fb9b5d.png

通过源码分析可以看到,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 list = new ArrayList<>(Arrays.asList(sArray)); list.add("test"); System.out.println(list); //第二种 List list1 = new ArrayList(5); Collections.addAll(list1,sArray); list1.add("test"); System.out.println(list1); }}

关注

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值