码迷,mamicode.com
首页 > 其他好文 > 详细

Arrays.asList () 不可添加或删除元素的原因

时间:2017-09-13 01:32:40      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:add   cep   添加   ted   color   style   static   异常   就会   

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 类, 但并没有覆写 add() 方法。 查看 AbstractList 源码发现,其很多方法都要求在子类中进行覆写的,不然就会抛出一个 (java.lang.UnsupportedOperationException)异常。

 

 

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

Arrays.asList () 不可添加或删除元素的原因

标签:add   cep   添加   ted   color   style   static   异常   就会   

原文地址:http://www.cnblogs.com/one-lightyear/p/7513013.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!