我刚刚找到了这个代码片段,想知道是否有任何特定原因将该值存储在 double 1 中数组而不是“普通”双变量?
double[] potentialEnergy = new double[1];
if (potentialEnergy[0] != 0.0)
throw new RuntimeException();
此外,实际上是否存在 double 的初始值不为 0.0 的情况,因此您需要专门检查这一点?
上下文:我最近开始阅读有关图形可视化的内容,并偶然发现了 sourcecode kamada/kawai 力导向算法的实现。在那里,从第 311 行开始,我找到了这 3 行代码,但没有发现它是数组的任何原因:
最佳答案
Is there any reason to create an array for only 1 element?
是的:如果您将其传递到一个方法中,该方法将通过将其放入数组中来提供值(而不是通过返回它来提供值,可能是因为它返回一些其他值)。
概括地说:如果您将其提供给需要数组的 API,即使它只是一个单元素数组。
Also, are there actually any cases where the initial value of a double is not 0.0 so you need to check that specifically?
不,新分配的数组包含所有位都关闭的元素(当它是 double
数组时为零,或者是任何其他数字类型的数组,包括 char
]、false
(对于 boolean
数组)和 null
(对于引用类型数组)。
关于java - 有什么理由只为 1 个元素创建一个数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53747686/