Arrays.asList()方法的使用

 使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportOperationException异常,Collections.singletonList()方法与Arrays.asList()类似。

说明:asList的返回对象是一个Arrays内部类,并没有实现集合的修改方法。Arrays.asList体现的是适配器模式,只是转换接口,后台的数据仍是数组。

Arrays.asList():

(1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean)

(2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新

(3)不支持add和remove方法

asList返回的ArrayList并不是我们熟悉的java.util.ArrayList,而是另一个类:

private static class ArrayList extends AbstractList

    implements RandomAccess, java.io.Serializable

    public static void main(String[] args) {

        List<String> list1 = Collections.singletonList("one");
        List<String> list2 = Arrays.asList("one", "two");
        List<String> list3 = new ArrayList<>(list1);
        list3.add("four"); // 正常

        list1.add("two"); // java.lang.UnsupportedOperationException
        list2.add("three"); // java.lang.UnsupportedOperationException
    }

 

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值