首页 > 解决方案 > 有什么理由只为 1 个元素创建一个数组吗?

问题描述

我刚刚找到了这个代码片段,想知道是否有任何特定原因将该值存储在双1数组中,而不仅仅是“普通”双变量?

double[] potentialEnergy = new double[1];

if (potentialEnergy[0] != 0.0)
    throw new RuntimeException(); 

此外,实际上是否有任何情况下 double 的初始值不是 0.0,所以您需要专门检查一下?

对于上下文:我最近开始阅读有关图形可视化的内容,并偶然发现了kamada /kawai 力导向算法的实现源代码。在那里,从第 311 行开始,我找到了那 3 行代码,但没有找到任何理由让它成为一个数组:

标签: javaarraysdouble

解决方案


有什么理由只为 1 个元素创建一个数组吗?

是的:如果您将它传递给一个方法,该方法将通过将其放入数组中来提供一个值(而不是通过返回它来提供一个值,可能是因为它返回了一些其他值)。

概括一下:如果您将它提供给需要一个数组的 API,即使它只是一个单元素数组。

此外,实际上是否有任何情况下 double 的初始值不是 0.0,所以您需要专门检查一下?

不,一个新分配的数组包含所有位都关闭的元素(当它是一个double数组[或任何其他数值类型的数组,包括char]、false对于 的数组booleannull引用类型的数组时,这些元素为零)。


推荐阅读