为什么Arrays.asList(T...t)不能add和remove?

平常使用的时候,会将数组转换成列表进行处理。
但经过这种方式处理以后,却不能再添加和删除元素,意思就是说不能修改,
生成的结果很固定,也很稳定!

为什么?
List<T> list = Arrays.asList<T...t>;
这个方法返回的对象是java.util.Arrays.ArrayList,而不是java.util.ArrayList.

这两个ArrayList有什么区别吗?
前面这个是个静态内部类,只继承了AbstractList抽象类,抽象类实现了List这个接口,
他实现了部分List接口的方法。实例也能向上转型为List接口。

后面的这个不仅继承了AbstractList抽象类,而且还实现了List接口,List的接口的方法在这个类
得到了完全的实现。他也可以向上转型为List接口,但他的方法比前一个要丰富很多。

大家也注意到,AbstractList的add,remove方法,调用时是会抛出异常的,unsupportException.
目的就是不让客户端程序员来调用。我想这么设计就是为了稳定asList()方法转换而来的List吧!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值