Java中奖数组转换为List<T>容器有一个很方便的方法 Arrays.asList(T ... a),我通过此方法给容器进行了赋值操作,接着对其进行 添加元素,却发现会抛出一个(java.lang.UnsupportedOperationException)异常。

看了一下源码:

public static <T> List<T> asList(T... a) {
return new ArrayList<T>(a);
}

定位到 ArrayList 内中,发现其实Arrays 的内部类,并且继承了AbstractList 类(abstract 类), 但并没有覆写 add() 方法,而是直接继承的。 查看 AbstractList 源码发现,其很多方法都要求在子类中进行覆写的,如果只继承的话,那么调用这些方法就会抛出一个异常。

// AbstractList 中实现的 add 方法
public boolean add(E e) {
add(size(), e);
return true;
} public void add(int index, E element) {
throw new UnsupportedOperationException();
} 如上,如果 在子类中单单是继承的话,调用add 方法就会抛出异常

结论: 通过Arrays.asList(T ... a) 方法初始化List 容器,该容器的长度是不可改变的。所以如果你要是想在你的容器中添加或者删除元素的话,还是使用 LinkedList () 【快插入 ,快删除】 或者 ArrayList() 【快查询】。

最新文章

  1. ContentProvider域名替换小工具
  2. Oracle协议适配器错误解决办法
  3. ASP.NET中的随机密码生成
  4. git 删除远程源,新增加源
  5. LevelDB系列之SSTable(Sorted Strings Table)文件
  6. EasyUI 兼容 IE6 方法总结
  7. 智捷公开课马上开始了-欢迎大家一起讨论学习-第一系列读《Swift开发指南(修订版) 》看Swift视频教程
  8. Logback日志使用详解
  9. oracle强化练习之分组函数
  10. bnu 34982 Beautiful Garden(暴力)
  11. HTML &lt;form&gt; 标签的 enctype 属性
  12. excel中VBA的使用
  13. Redis-aof持久化
  14. PCI-E配置MSI中断流程解析
  15. mathJax基础语法-0基础开始,(这是网上抄来的如果有权限和版权问题联系本人处理,仅供学术参考)
  16. IT行业中文资源网址集绵
  17. mvc route .html 后缀 404
  18. JavaScript Json(转)
  19. ORM 多表操作查询及增删改查
  20. 洛谷P1501 Tree II

热门文章

  1. JAVA基础第一组(前5道题)
  2. 201521123073《Java程序设计》第4周学习总结
  3. 201521123070 《JAVA程序设计》第4周学习总结
  4. 201521123097《Java程序设计》第十周学习总结
  5. java web:在eclipse中如何创建java web 项目
  6. Hibernate逆向工程【PowerDesigner、idea环境下】
  7. python import xxx 与 from xxx import xx 模块引入的区别
  8. JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)
  9. Opengl4.5 中文手册—G
  10. 我的第一个python web开发框架(2)——一个简单的小外包