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

时间:2018-12-12 16:48:01

标签: java arrays double

我刚刚找到了此代码段,并想知道是否有任何特定原因将值存储在double 1数组中,而不是仅存储“ double”变量中?

double[] potentialEnergy = new double[1];

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

此外,实际上是否存在双精度值的初始值不为0.0的情况,因此您需要进行专门检查?

对于上下文:最近,我开始阅读有关图形可视化的文章,偶然发现sourcecode为kamada / kawai力导向算法的实现。在那儿,从311行开始,我找到了那三行代码,却没有找到将其作为数组的任何理由:

1 个答案:

答案 0 :(得分:1)

  

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

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

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

  

此外,实际上是否存在双精度值的初始值不为0.0的情况,因此您需要进行专门检查?

否,新分配的数组包含所有位都关闭的元素(当它是double数组[或任何其他数字类型的数组,包括char],{{1}时为零}用于false的数组,boolean用于引用类型的数组。