当前位置: 首页 > 知识库问答 >
问题:

我无法添加到列表中[重复]

武晨
2023-03-14

我有下一个代码:

List<String> str=Arrays.asList("cat","tiger","dog","mouse");
str.add("horse");

它可以编译,但在运行时我有不支持的操作异常。为什么会发生这种情况?

共有3个答案

邓禄
2023-03-14

Arrays.asList()返回一个固定大小的列表,并由您传递的数组支持,因此您不能添加或删除元素,因为这也意味着更改数组。(请注意,如果您查看源代码,您会发现Arrays.asList()将返回一个java.util.Arrays.ArrayList的实例,您不应该将其与您可能已经知道的java.util.ArrayList混淆)。

相反,您需要创建另一个列表,例如通过调用new ArrayList

Java 8的方式可能是这样的:

List<String> str = Stream.of( "cat","tiger","dog","mouse" ).collect( Collectors.toList() );

韩博厚
2023-03-14

这称为 支持列表 。支持列表 它是在将数组转换为列表时创建的,但请记住,数组中的元素与列表中的元素链接,因此您无法添加或删除任何内容,并且您正在使用类似于数组的varargs,

衡建中
2023-03-14

数组列表(字符串...创建一个不可修改的数组。用另一个数组列表包装它,如下所示:

List<String> str = new ArrayList<>(Arrays.asList("cat","tiger","dog","mouse"));
str.add("horse");
 类似资料:
  • 问题内容: 这个清单对象在咬我屁股。 每当我尝试向其中添加元素时,它都会产生以下结果: 产生错误的行无关紧要,但无论如何这里都是这样: 我不应该静态访问它吗? 变量的实际声明: 有任何想法吗?在Google上找不到任何值得的东西。 问题答案: Arrays.asList()将给您返回不可修改的列表,这就是为什么添加失败的原因。尝试使用以下方法创建列表:

  • < code>list_of_lists=[[1,2,3],[4,5,6]] < br > < code > list _ to _ add =[" A "," B "," C"] 我希望结果是list_of_lists会变成: 谢谢!

  • 我有一些很奇怪的问题。我想调用名为< code>create的方法,但不幸的是服务器抛出错误,但我不知道为什么。这是我的样本Rest控制器 } 我不能添加用户,因为服务器抛出“内部服务器错误”,但我不知道,为什么。 编辑 操作。我忘了。这是我的Tomcat错误日志

  • 我有一个Java的DTO对象设计如下: 我给Jasper的DTO产品是这样的: 使用Jaspersoft Studio,我可以轻松显示字段名称,但我找不到显示客户端列表的方法。 我尝试使用调色板中可用的元素List,但它需要一个数据集。好了,我创建了一个clientDataset。但是,我如何向clientDataset提供客户端列表?

  • 问题内容: 为什么下面 不行?只是为了学习而玩弄泛型,我希望我能够在其中插入任何扩展Collection的内容,但会出现此错误: 问题答案: 您已声明是的扩展名。但是根据Java编译器,它可以是 任何 扩展的元素,即。因此,出于这个原因,它必须禁止采用通用类型参数的操作。它不能让你的加入到这可能是。 尝试删除通配符: 这应该工作,因为你可以肯定是一个添加到的。

  • 我有一个熊猫数据框,其中一列由列表组成: 我想添加,例如,每个列表的第一个和最后一个索引。为此,我使用: 这分别作用于每一行,如果数据帧很大,这可能会非常密集。有没有办法将此操作矢量化?