java - 在同一范围内调用两次具有数组输出的方法

标签 java

假设您有一个输出不同大小数组的方法。

在使用它之前,您需要创建一个数组引用变量。在此之前,您需要找到数组长度,例如

int[] intArray = new int[methodReturnsArray().length]

然后您可以将 intArray 设置为 methodReturnsArray() 生成的数组。

我对此感到有点不安,因为我们调用了 methodReturnsArray() 两次:一次是为了找出数组有多大,另一次是为了将其设置为等于引用变量。

调用该方法两次是否浪费资源,或者数组仅创建一次(当您找到其大小时)?

编辑:我知道你可以将 intArray 初始化为数组返回的方法。但由于一些复杂的原因(与在每次迭代时使用不同大小的数组在循环中调用“methodReturnsArray”有关),我需要知道调用两次是否会浪费计算资源。

最佳答案

这取决于您如何填充新的数组变量。

但常见的方法是引入新的局部变量来保存方法methodReturnsArray中对原始数组的引用。 。即:

int[] methodArray = methodReturnsArray();
int[] intArray = new int[methodArray.length];
...

那么复制数组的最佳方法是 System.arrayCopy(...)方法。 这种方法在任何情况下都有效,并且会阻止您在方法 methodReturnsArray 中执行操作两次。

关于java - 在同一范围内调用两次具有数组输出的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14552502/

相关文章:

java - 设计问题: Static vs Non-static instance variables

JAVA数据源

java - 在 sdkman 中自定义 sdk 列表/sdk 使用

java - 如何在maven中创建一个减去一些包的发行版?

java - Spring @Service 对 @PutMapping 并发请求的线程安全问题

java - 带有本地分页的 GWT/GXT 网格?

java - 带有业务异常的 Hystrix 断路器

java - 在j2me中显示alert然后跳转到另一个窗体

RowSet 的 Java 8 到 Java 11 迁移(出现错误)

java - Android 如何从我的主要 Activity 中调用 fragment