专栏首页学习分享-实践为王通过 Arrays.asList(strArray) 方式,将数组转换List
原创

通过 Arrays.asList(strArray) 方式,将数组转换List

通过 Arrays.asList(strArray) 方式,将数组转换List

通过 Arrays.asList(strArray) 方式,将数组转换List后,不能对List增删,只能查改,否则抛异常。

关键代码:List list = Arrays.asList(strArray);

private void testArrayCastToListError() {
  String[] strArray = new String[2];
  List list = Arrays.asList(strArray);
  //对转换后的list插入一条数据
  list.add("1");
  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 com.darwin.junit.Calculator.testArrayCastToList(Calculator.java:19)
 at com.darwin.junit.Calculator.main(Calculator.java:44)

程序在list.add(“1”)处,抛出异常:UnsupportedOperationException。

原因解析:Arrays.asList(strArray)返回值是java.util.Arrays类中一个私有静态内部类java.util.Arrays.ArrayList,它并非java.util.ArrayList类。java.util.Arrays.ArrayList类具有 set(),get(),contains()等方法,但是不具有添加add()或删除remove()方法,所以调用add()方法会报错。

使用场景:Arrays.asList(strArray)方式仅能用在将数组转换为List后,不需要增删其中的值,仅作为数据源读取使用。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java数组转List的三种方式及对比

    本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析。

    Java编程指南
  • 面试难题:Java 数组转 List 的3种 性能对比!

    本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析。

    搜云库技术团队
  • Java 数组转 List 的 3 种方式,哪种性能最牛?

    本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析。

    Java技术栈
  • Java 数组转 List 的三种方式及对比

    来源:blog.csdn.net/x541211190/article/details/79597236

    芋道源码
  • Java中数组和List相互转换的常用方式

    这种方式比较简单,也是最容易想到和最常用的方式,但是过程会繁琐一点,该方式转换后得到List后,可以对List进行增删改操作。

    玖柒的小窝
  • 通过ArrayList的构造器,将Arrays.asList(strArray)的返回值转为java.ut

    通过ArrayList的构造器,将Arrays.asList(strArray)的返回值由java.util.Arrays.ArrayList转为java.ut...

    好派笔记
  • 通过Collections.addAll(arrayList, strArray)方式转换数据

    通过Collections.addAll(arrayList, strArray)方式转换,根据数组的长度创建一个长度相同的List,然后通过Collectio...

    好派笔记
  • 数组转List,一定要小心这个坑!

    在日常开发过程中,数组转List的使用频率非常之高。大家可以回想一下,通常你都是怎么转的呢?

    田维常
  • JDK1.8的Lambda、Stream和日期的使用详解(很详细)

    本篇主要讲述是Java中JDK1.8的一些新语法特性使用,主要是Lambda、Stream和LocalDate日期的一些使用讲解。

    田维常
  • Java8新特性

    Lambda表达式可以看成是匿名内部类,使用Lambda表达式时,接口必须是函数式接口

    shimeath
  • 一文带你入门Java Stream流,太强了

    两个星期以前,就有读者强烈要求我写一篇 Java Stream 流的文章,我说市面上不是已经有很多了吗,结果你猜他怎么说:“就想看你写的啊!”你看你看,多么苍白...

    沉默王二
  • Java8特性接口的改变LambaStream时间API

    函数式接口,该接口中只能由一个抽象方法,可以使用@FunctionalInterface注解修饰某个接口有且仅有一个抽象方法。

    spilledyear
  • java 将数组排序 指这种数组:[] ArrayList之类的请用Collection.sort

    用户1258909
  • Java8 Lambda表达式与Stream API (二): Stream API的使用你要知道的Java8 匿名内部类、函数式接口、lambda表达式与Stream API都在这里

    你要知道的Java8 匿名内部类、函数式接口、lambda表达式与Stream API都在这里 转载请注明出处 https://cloud.tencent.co...

    WWWWDotPNG
  • Guava Collect

    Guava是什么 进入新公司就会接触一些新的东东,Guava就是一个,Guava是Google的一个开源类库,丰富了JDK的API,而且使用起来很方便,本文介绍...

    高爽
  • Java 8 中的 Streams API 详解

    Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 ...

    编程十年
  • java1.8新特性之stream

    Stream字面意思是流,在java中是指一个来自数据源的元素队列并支持聚合操作,存在于java.util包中,又或者说是能应用在一组元素上一次执行的操作序列。...

    编程思录
  • 深度探秘 Java 8 函数式编程(下)

    函数编程的一大益处,是用更精练的代码表达常用数据处理模式。函数接口能够轻易地实现模板方法模式,只要将不确定的业务逻辑抽象成函数接口,然后传入不同的lambda表...

    芋道源码
  • Java8新特性之Stream流(基础篇)

    对于流的处理,主要有三种关键性操作:分别是流的创建、中间操作(intermediate operation)以及最终操作(terminal operation)...

    Remember_Ray

扫码关注云+社区

领取腾讯云代金券