有人能向我解释下一行代码会发生什么以及它为什么有效吗?
Integer[] myray = {1,2,3,4,5};
List<Integer> l = new ArrayList<Integer>(Arrays.asList(myray));
l.add(6);
System.out.println(l);
上面的代码工作正常。它将数组转换为列表,然后添加另一个元素。但是下面的代码不起作用
Integer[] myray = {1,2,3,4,5};
List<Integer> l = (Arrays.asList(myray));
l.add(6);
System.out.println(l);
上面的代码给了我以下错误:线程“main”java.lang.UnsupportedOperationException有人能告诉我这两个转换之间的区别吗?为什么只有第一个转换有效??提前谢谢
因为来自 Arrays 类的
asList
方法会为您提供一个不可变列表,您无法在其中修改该列表。它只是可读的。
这是相同的文档
返回由指定数组支持的固定大小列表。
在第一种情况下,你不是直接使用它,而是围绕它创建一个新的列表。
new ArrayList<Integer>(Arrays.asList(myray));
当你在内部这样做时,元素只得到copy,你得到的是一个ArrayList的常规实例。
数组返回
一个由数组支持的固定大小的列表
实现(java.utils.Array.ArrayList
),因此您无法向其添加元素(或从中删除元素)。
当您创建一个新的 java.util.ArrayList
并将您从 Arrays.asList
获得的固定大小的列表
传递给其构造函数时(就像您在第一个代码段中所做的那样),您将获得一个普通的 java.util.ArrayList
,您可以在其中添加元素。
下面是一个示例数据帧: 我想要的是 最好作为Numpy数组的列表。 我知道给了我列表,而给了我类似于的东西,但作为对象。但是,我尝试了,但没有得到预期的结果。 我该如何实现这一点?谢谢!
通过使用Java8流: 从性能上看,哪个更好?
我得到一个json数组从服务器: 我想使用gson将上述json数据转换为Java
问题内容: 我有一个这样的清单: 并在这样的对象上: 如何将“列表”分配给“ myMatrix”? 我不想遍历列表并将元素逐个分配给MyMatrix,但我想尽可能地直接分配它(使用oppurtune修改)。谢谢 问题答案: 您可以使用。 Java文档
问题内容: 我使用一个外部模块(libsvm),该模块不支持numpy数组,仅支持元组,列表和字典。但是我的数据是二维二维数组。我如何以pythonic方式转换它,也就是没有循环。 问题答案: 您可以简单地将矩阵转换为,以证明:
问题内容: 我如何转换 至 问题答案: 使用简单的列表理解: 会给你: