首页 > 其他 > 详细

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

时间:2017-09-13 01:10:55      阅读:414      评论:0      收藏:0      [点我收藏+]

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 () 不可添加或删除元素的原因

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!