gpt4 book ai didi

java - Arraylist addAll() 方法抛出异常

转载 作者:行者123 更新时间:2023-12-01 06:39:07 28 4
gpt4 key购买 nike

为什么我在执行以下代码时遇到异常。

  String[] array1 = {"A","B","C","D","E"};
String[] array2 = {"F","G","H","I"};
List<String> list = Arrays.asList(array1);
list.addAll(Arrays.asList(array2)); //here getting exception

异常

 Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(Unknown Source)
at java.util.AbstractList.add(Unknown Source)
at java.util.AbstractCollection.addAll(Unknown Source)
at Sample6.main(Sample6.java:19)

但是这段代码运行良好。

List<String> list = new ArrayList<String>(Arrays.as.asList(array1));        
list.addAll(Arrays.asList(array2));

谢谢

最佳答案

第一种情况

List<String> list = Arrays.asList(array1);
list.addAll(Arrays.asList(array2));

由于第一种情况下的 list不可修改(就大小而言),因为它是由 asList 方法返回的。

来自 asList() 的文档

Returns a fixed-size list backed by the specified array.

因此,当您直接引用它时,当您尝试修改它时,最终会出现异常

第二种情况

List<String> list = new ArrayList<String>(Arrays.as.asList(array1));

这里您不是直接引用列表。您正在创建一个新的 ArrayList 并使用 Arrays.as.asList(array1) 返回的列表的数据,该数据不是不可修改的(就大小而言)。

关于java - Arraylist addAll() 方法抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19398004/

28 4 0