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(...),因此函数调用的速度应该没有任何差异。
使用数组时,我希望(静态)数组的取消引用比通过函数调用访问(动态)集合的元素更快。但是,要进行适当的比较,您需要提供更多有关数组使用方式的上下文。
我使用的 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(...),因此函数调用的速度应该没有任何差异。
使用数组时,我希望(静态)数组的取消引用比通过函数调用访问(动态)集合的元素更快。但是,要进行适当的比较,您需要提供更多有关数组使用方式的上下文。