关于Arrays.asList()返回的ArrayList
一般使用的
java.util.ArrayList结构:
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.
而Arrays类中也存在一个内部类一样为ArrayList,
java.util.Arrays.ArrayList结构:
private static class ArrayList<E> extends AbstractList<E> implements RandomAccess, java.io.
这个内部类存在一定的局限性,在调用clear()方法时会抛出java.lang.UnsupportedOperationException异常
原因在于clear()方法是List接口的抽象方法,而Arrays.ArrayList并未实现List接口,转而调用实现了List接口的AbstractList中的clear()方法,clear()会调用remove()方法进行移除,但AbstractList的并未实现remove()方法中的移除操作,仅仅抛出一个异常,如下
public E remove(int location) {
throw new UnsupportedOperationException();
}
也就是说当调用Arrays.asList()方法时返回的是其内部的ArrayList,而且该ArrayList不可修改
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)