Java 如何将动态布尔数组作为方法参数处理?

How Java handles dynamic Boolean array as method parameter?

我使用的 class 有一个接受 boolean[] 的方法。

此代码不会引发任何错误

public class myclass{
    void move(boolean[] myarray) {
         //Do stufff
    }
}

现在,我做了一些 C++ 编码,这在动态内存的上下文中不起作用。

所以这本质上是一个 java 问题:

在我的例子中,接收到的数组具有已知长度,但我想知道如果它是动态的,你将如何在 Java 中处理它(以及如果它不是动态的我应该怎么做) .

我猜编译器或 JVM 会处理这个问题,但我想知道我可以实现的速度优化。

您应该考虑使用 ArrayList<>() 来满足与迭代任意长度集合相关的所有需求。

在 Java 世界中,使用 List 也是一种很好的做法。有一篇文章说程序员使用列表和数组,使用列表的程序员产生的错误更少。

Java 中的数组总是恒定长度。来自 The Java Tutorials、"The length of an array is established when the array is created."

如果你想要动态数组,你可以使用 Collections Framework 中的东西,例如ArrayList.

在任何情况下,对数组(或集合)的引用都被传递到 move(...),因此函数调用的速度应该没有任何差异。

使用数组时,我希望(静态)数组的取消引用比通过函数调用访问(动态)集合的元素更快。但是,要进行适当的比较,您需要提供更多有关数组使用方式的上下文。