解释
您应该将其替换为:
d[i] = Double.valueOf(d.length - i);
从它的Javadoc:
已弃用。
很少使用这个构造函数。静态工厂valueOf(double)
通常是更好的选择,因为它可能会产生明显更好的空间和时间性能。
一般来说,valueOf
并不强制总是返回一个新实例。它可以利用内部缓存并重新使用之前创建的值,从而使其更快。例如,如果您创建数百个1.0
.
笔记
您首先使用 a 是否有特定原因Double[]
?如果没有,那就去吧double[]
。与对象包装器相比,原语速度更快,内存开销也更少。
那么你的代码就是:
double[] d = new double[10];
for (int i = 0; i < d.length; i++)
d[i] = d.length - i;
顺便说一句,您应该永远不要省略花括号。即使你的循环只有一行。这是很难找到的错误的常见来源。
另外,您的变量命名不是很好。是什么d
?尝试给它起一个反映其实际含义的名称。例如ages
,如果它存储人的年龄。如果你没有特定的东西,也许使用values
. 这已经比仅仅更好了d
。特别是因为它是复数,所以很明显它是一个多值数组。
double[] values = new double[10];
for (int i = 0; i < values.length; i++) {
values[i] = values.length - i;
}