现象:

数组转List用arrays.asList方法,只能用于获取数组长度,不能从转成的List中使用add和remove方法

报错:java.lang.UnsupportedOperationException

解决办法:

将数组元素遍历add添加到list中

原因:

1.这里只返回长度大小

2.这个ArrayList并不是我们经常使用到的List<String> a = new ArrayList<String>();中的ArrayList,这个ArrayList是Arrays里面一个静态内部私有类。

3.在代码中,已经表明,这个方法没有add和remove方法。

 /*** Returns a fixed-size list backed by the specified array.  (Changes to* the returned list "write through" to the array.)  This method acts* as bridge between array-based and collection-based APIs, in* combination with {@link Collection#toArray}.  The returned list is* serializable and implements {@link RandomAccess}.** <p>This method also provides a convenient way to create a fixed-size* list initialized to contain several elements:* <pre>*     List&lt;String&gt; stooges = Arrays.asList("Larry", "Moe", "Curly");* </pre>** @param <T> the class of the objects in the array* @param a the array by which the list will be backed* @return a list view of the specified array*/@SafeVarargs@SuppressWarnings("varargs")public static <T> List<T> asList(T... a) {return new ArrayList<>(a);}

    private static class ArrayList<E> extends AbstractList<E>implements RandomAccess, java.io.Serializable{private static final long serialVersionUID = -2764017481108945198L;private final E[] a;ArrayList(E[] array) {a = Objects.requireNonNull(array);}@Overridepublic int size() {return a.length;}@Overridepublic Object[] toArray() {return a.clone();}@Override@SuppressWarnings("unchecked")public <T> T[] toArray(T[] a) {int size = size();if (a.length < size)return Arrays.copyOf(this.a, size,(Class<? extends T[]>) a.getClass());System.arraycopy(this.a, 0, a, 0, size);if (a.length > size)a[size] = null;return a;}@Overridepublic E get(int index) {return a[index];}@Overridepublic E set(int index, E element) {E oldValue = a[index];a[index] = element;return oldValue;}@Overridepublic int indexOf(Object o) {E[] a = this.a;if (o == null) {for (int i = 0; i < a.length; i++)if (a[i] == null)return i;} else {for (int i = 0; i < a.length; i++)if (o.equals(a[i]))return i;}return -1;}@Overridepublic boolean contains(Object o) {return indexOf(o) != -1;}@Overridepublic Spliterator<E> spliterator() {return Spliterators.spliterator(a, Spliterator.ORDERED);}@Overridepublic void forEach(Consumer<? super E> action) {Objects.requireNonNull(action);for (E e : a) {action.accept(e);}}@Overridepublic void replaceAll(UnaryOperator<E> operator) {Objects.requireNonNull(operator);E[] a = this.a;for (int i = 0; i < a.length; i++) {a[i] = operator.apply(a[i]);}}@Overridepublic void sort(Comparator<? super E> c) {Arrays.sort(a, c);}}

参考:https://jingyan.baidu.com/article/0eb457e53e219d03f1a905e7.html

【java】数组转list用arrays.aslist报错相关推荐

  1. JAVA三种数组转链表的方式 适用环境 Arrays.asList报错java.lang.UnsupportedOperationException

    1.Arrays.asList 适用于Long.Integer.String等类型 不适用于基础类型long int 等 而且转变的List长度固定 无法实现添加.删除操作 Integer[] x = ...

  2. Java数组转集合之Arrays.asList()用法

    Arrays.asList()用法 使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合. 而一开始asList的设计时用于打印数组而设计 ...

  3. js 如何将java list集合转换成var类型数组_零基础参加郑州Java培训 一定要注意Arrays.asList的用法...

    作为编程界的老大哥,Java一直是想要加入互联网行业的人的首选.为了能够更快更好地入行,很多零基础学员选择参加郑州Java培训班,跟着老师的脚步由浅入深的学习专业技术.今天千锋郑州小编就给大家分享使用 ...

  4. 数组转集合问题Arrays.asList()

    数组转集合问题Arrays.asList() 1. 源码: Arrays.class public static <T> List<T> asList(T... a) {//A ...

  5. 将数组转换成集合Arrays.asList,不可进行add和remove操作的原因

    直接上代码: import java.util.Arrays; import java.util.List;public class Test {public static void main(Str ...

  6. %@ taglib prefix=c uri=http://java.sun.com/jsp/jstl/core %会报错

    有些时候,<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>会报错,错 ...

  7. java 关闭 tomcat,每次关闭TOMCAT就报错 不知道什么?该如何处理

    当前位置:我的异常网» Java Web开发 » 每次关闭TOMCAT就报错 不知道什么?该如何处理 每次关闭TOMCAT就报错 不知道什么?该如何处理 www.myexceptions.net  网 ...

  8. 记一次Java代码不执行,也不报错!求大佬赐教!

    记一次Java代码不执行,也不报错!求大佬赐教! 发生背景 问题所在 发生背景 实训在做串口通讯的时候,进行数据处理时,代码执行一部分,有一部分没有执行. 十分纳闷,代码如下: /*** 处理返回结果 ...

  9. SpringBoot项目在eclipse中能运行,部署到服务器 nohup java -jar 方式运行就无法显示报错

    SpringBoot项目在eclipse中能运行,部署到服务器 nohup java -jar 方式运行就无法显示报错: *************************** APPLICATION ...

最新文章

  1. MongoDB 计划缓存的影响
  2. Linux系统安全工具tcpdump用法
  3. centos 7 yum 安装 MongoDB 4.2
  4. require(),include(),require_once()和include_once()的异同
  5. HDU 4609——3-idiots
  6. 代码整洁之道--思维导图
  7. python樱花制作教程视频_大型Python视频资料,阿里巴巴推荐,用Python画一棵漂亮的樱花树...
  8. oracle 合并函数
  9. 9206-1118-周三 猜拳小游戏一次性版本
  10. python队列实现_Python 数据结构之队列的实现
  11. # Kinect V2 简介
  12. 探究CSS3中的transition和transform属性方法使用
  13. 5月6阴阳师服务器维护,《阴阳师》手游5月6日维护更新公告
  14. php获取服务器运行时间差,解决php服务器时间差异
  15. 如何解释反向代理与正向代理
  16. BootLoader这个玩意
  17. 源代码静态检测分析技术浅析
  18. 大通流TVS管和ESD静电二极管的区别
  19. 郊区春游(NC16122)状压dp
  20. PHP获取系统时间的方法(毫秒数)

热门文章

  1. Nmap命令详解及常用命令总结
  2. 材料科学基础学习指导-吕宇鹏-名词和术语解释-第4章固体中的相结构
  3. [转载]3721驻留机制简单研究
  4. rockniu@live.com是我的MSN帐号,欢迎朋友们加我探讨技术.
  5. PS制作上下对称的图标
  6. iOS 屏幕垂直同步 详解
  7. 软考常考知识点整理-V型生命周期模型
  8. python生日祝福语_春节生日快乐祝贺词
  9. 元宇宙游戏席卷全球:什么是元宇宙?
  10. 算法题记录2:跳格子问题