Arrays.asList 使用注意事项

 1     博客分类:
2 java 综合
3 数据结构和算法
4
5 Arrays.asList
6
7 看下面的代码:
8 Java代码 收藏代码
9
10 import java.util.Arrays;
11 import java.util.List;
12
13
14 public class TestAsList {
15
16 public static void main(String[] args) {
17 String[] str = new String[]{"1","2","3"};
18 List<String> list = Arrays.asList(str);
19 list.add("4");
20 }
21 }
22
23
24
25 你们猜猜,有问题吗?
26
27 运行程序,报以后错误:
28 Java代码 收藏代码
29
30 Exception in thread "main" java.lang.UnsupportedOperationException
31 at java.util.AbstractList.add(AbstractList.java:131)
32 at java.util.AbstractList.add(AbstractList.java:91)
33 at test.TestAsList.main(TestAsList.java:12)
34
35
36
37 分析原因:
38
39 list 的值是数据传化而来,因此list的长度是固定的。程序运行到 list.add("4")时,程序出错了。
40
41 解决办法如下:
42 Java代码 收藏代码
43
44 import java.util.ArrayList;
45 import java.util.Arrays;
46 import java.util.List;
47
48
49 public class TestAsList {
50
51 public static void main(String[] args) {
52 String[] str = new String[]{"1","2","3"};
53 List<String> list = new ArrayList<String>(Arrays.asList(str));
54 list.add("4");
55 System.out.println(list.size());
56 }
57 }
58
59
60
61 总结:使用asList 时要注意。
原文地址:https://www.cnblogs.com/jiayonghua/p/2366776.html