【JAVA 基础】使用 Arrays.asList 的注意事项

【JAVA 基础】 使用 Arrays.asList 的注意事项

先看下 Arrays.asList 的使用:

String s = "a,b,c,d";
List<String> list = Arrays.asList(s.split(","));
System.out.println(list);
System.out.println(list.contains("a"));
System.out.println(list.contains("e"));

输出的结果如下所示:

[a,b,c,d]
true
false

然后,在 list 集合中添加元素 e,如下所示:

list.add("e");
System.out.println(list.contains("e"));

预期的结果,应该打印输出 true ,但是实际上却抛出了异常:

java.lang.UnsupportedOperationException

查看源码:
ArrayList 并不是我们平时常用的 ArrayList,因为我们平时常用的 ArrayList 类是位于 java.util 包下的,但是此处的 ArrayList 却是 java.util.Arrays 包下的内部类,它继承了 AbstractList,重写了很多方法,比如上面所示的 contains() 方法,但是却没有重写 add() 方法,所以在调用 add() 方法的时候,会抛出java.lang.UnsupportedOperationException 异常

得出结论:
在使用工具类 Arrays.asList() 把数组转换为集合时,不能使用其修改集合相关的方法,它的 add / remove / clear 方法会抛出 java.lang.UnsupportedOperationException 异常

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值