首页 > 代码库 > 关于Arrays.asList()返回的ArrayList
关于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不可修改
关于Arrays.asList()返回的ArrayList
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。