热点:

    Arrays.asList移除异常解决方案

      [   原创  ]   作者:
    收藏文章 暂无评论

    Arrays.asList(T... a)方法返回的List实际上是java.util.Arrays.ArrayList的一个实例,该类继承自java.util.AbstractList,并未独立实现java.util.List接口。由于其父类AbstractList中定义了remove等操作方法,因此该列表支持删除操作,但该实现具有局限性,底层基于传入的数组,不支持结构性修改,调用remove可能抛出UnsupportedOperationException。

    1、 调用Arrays.asList生成的列表执行remove操作时,会抛出异常,因为该列表不支持修改操作。

    2、 报错代码段

    3、 }

    4、 }

    5、 通过将Arrays.asList(T... a)生成的List作为参数传递给新的java.util.ArrayList构造函数,即可轻松解决该问题。

    6、 代码:

    7、 }

    8、 }

    9、 原因剖析

    10、 java.util.Arrays.ArrayList与java.util.ArrayList所实现的接口存在差异,前者不支持增删操作,后者是完整实现List接口的可变列表。

    11、 ArrayList 是 List 接口的一个实现类,用于存储有序可重复的元素集合。

    12、 java.util.Arrays.ArrayList类所继承的AbstractList中的remove方法并未实现List接口中定义的删除操作逻辑,导致调用该方法时会抛出不支持操作异常,无法正常执行元素移除功能。

    13、 java.util.Arrays.ArrayList 实现了 List、RandomAccess、Serializable 和 Cloneable 接口。

    14、 在java.util.AbstractList抽象类中,remove方法的默认实现会直接抛出UnsupportedOperationException异常。

    15、 代码原稿

    16、 }

    17、 ArrayList 实现了 List 接口,支持动态数组操作。

    18、 ArrayList的remove方法通过索引移除元素,后续元素前移,大小减一,并返回被移除的元素。

    soft.zol.com.cn true https://soft.zol.com.cn/1131/11318630.html report 1323 Arrays.asList(T... a)方法返回的List实际上是java.util.Arrays.ArrayList的一个实例,该类继承自java.util.AbstractList,并未独立实现java.util.List接口。由于其父类AbstractList中定义了remove等操作方法,因此该列表支持删除操作,但该实现具有局限性,底层基于传入...
    不喜欢(0) 点个赞(0)
    随时随地资讯查报价 就上ZOL手机客户端,点击或扫描二维码下载
    立即下载

    USB Safely Remove

    更新时间:2019年12月30日

    用户评分:0 | 0人点评

    软件类型:免费软件

    软件语言:英文

    USB Safely Remove
    • 更新时间:2019年12月30日
    • 软件大小:5.8MB
    • 软件分类:优化软件
    • 语言种类:英文
    • 软件评级:0 人点评