【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 异常