Arrays.asList()使用注意事项

本文详细解析了在Java中使用Arrays.asList方法初始化集合时的注意事项,包括返回对象的类型、适配器模式的应用,以及如何避免UnsupportedOperationException异常。同时,介绍了如何通过将返回的list转换为ArrayList来解决这些问题。

在初始化集合的使用,又是需要使用list,但是如果有十来个元素,一个个add也比较麻烦,这时可使用Arrays.asList(“1”, “2”, “3”,…),来实现比较简洁的处理。但是要注意一下几点:

  1. asList 的返回对象是一个 Arrays 内部类,并没有实现集合的修改方法。Arrays.asList
    体现的是适配器模式,只是转换接口,后台的数据仍是数组。不能使用其修改集合相关的方法,它的 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。
       String[] arrays = new String[]{"1", "2", "3", "4", "5"};
       List<String> str = Arrays.asList(arrays);

这个运行就会报错。

  1. 如果修改数组的元素,list中的元素也会随着修改
 		String[] arrays = new String[]{"1", "2", "3", "4", "5"};
        List<String> str = Arrays.asList(arrays);
        arrays[0] = "01";

输出结果就会变成:“01”, “2”, “3”, “4”, “5”

  1. 如果要正常使用转换的list,可以将其转化成ArrayList,以上两个问题即可解决
 		String[] arrays = new String[]{"1", "2", "3", "4", "5"};
        List<String> str = new ArrayList<>(Arrays.asList(arrays));
        arrays[0] = "01";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值