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

关于Arrays.asList()返回的ArrayList

时间:2016-10-22 15:01:04      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:blog   局限性   one   cat   list   内部类   nts   extends   abstract   

一般使用的
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不可修改
 

关于Arrays.asList()返回的ArrayList

标签:blog   局限性   one   cat   list   内部类   nts   extends   abstract   

原文地址:http://www.cnblogs.com/aheiabai/p/5987273.html

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