我有这个:
import java.util.Arrays;
import java.util.ArrayList;
public class Test1 {
public static void main(String[] args) {
double[] a = new double[2];
for( double d : Arrays.asList(a))
System.out.println(d);
}
}
输出:
$ javac Test1.java
Test1.java:9: error: incompatible types
for( double d : Arrays.asList(a))
^
required: double
found: double[]
1 error
为什么我在这里出错?
和
错误的含义是什么? 它告诉我什么?
您在这里遇到错误,是因为当您使用接受varargs的函数时,此函数在幕后创建了您在其中传递的对象的新数组。因此,Arrays.asList(1,2,3)
实际上得到
了一个整数数组 。
当您传递整数 数组时,请 在后台Arrays.asList()
创建 一个 整数 数组数组 。这就是为什么您不能通过以下循环对其进行迭代:
for( double d : Arrays.asList(a))
尝试像这样更改它:
for(double[] d : Arrays.asList(a))
d
实际上,您将看到对传递给Arrays.asList()
- 的数组的引用a
。
问题内容: 使用,为什么它对(原始类型)和数组显示不同的列表大小? a)对于数组,每当我执行以下程序时,列表大小= 1 b)但是,如果我从数组类型更改为array(如),则列表大小为4,我认为这是正确的。 PS :使用(包装类)数组,则结果很好,但是我不确定为什么在原始数组中列表大小为1。请解释。 问题答案: 由于Java泛型而无法保存原始值(请参阅类似的问题)。因此,当您调用Arrays 时,将
我怎么能转换一个大的到与洛塔什?
问题内容: 我有一个包含几个整数的数组。我已经向数组添加了一些值,但是现在我需要通过jQuery的方法将此数组发送到页面。如何将其转换为JSON对象进行发送? 问题答案: 向后兼容的脚本:https : //github.com/douglascrockford/JSON- js/blob/master/json2.js 并致电: 注意: JSON对象现在是大多数现代Web浏览器(IE 8及更高版
问题内容: 如何将数组转换为CSV文件? 这是我的数组: 问题答案: 我正在使用以下功能;它是对fputscsv注释中的man条目之一的改编。而且您可能想要展平该数组;不知道如果您传递一个多维的行会发生什么。
问题内容: 是否有一种优雅的方法将原语数组转换为相应容器对象的数组- 例如,将a 转换为a ?还是我坚持循环浏览并手动执行? 是的,循环并不完全困难。有点丑。 问题答案: Apache Commons Apache Commons / Lang 有一个ArrayUtils类,用于定义这些方法。 所有称为 从原始数组转换为包装器数组的方法 从包装对象数组到原始数组的所有转换 例: 番石榴 但是然后我
转换/展平列表的简单方法是什么 我知道我可以通过迭代并使用来做到这一点,但我想知道是否有更简单的方法使用Java8个流来做到这一点? 可能是这样的,但不必将原语char装箱到Character: