java - 返回数组与填充数组

标签 java arrays methods data-structures return-value

我见过两种通用类型的方法,它们的目标是返回一组值。第一个是最明显的:

public double[] getArray() {
    ...
    return ...;
}

不过,我也见过填充数组作为参数传递的方法,例如 AffineTransform.getMatrix():

public void getMatrix(double[] flatmatrix) {
    ...
    flatmatrix[0] = ...;
    ....
}

每种方法的优缺点是什么,在哪些情况下更可取?另外,使用第二种方法而不是只使用第一种方法背后的逻辑是什么?

最佳答案

矩阵方法更喜欢修改数组的原因是它们经常用于图形和绘制调用。这些的编写方式允许重复使用数组。

最好不要在每秒调用 60 次的绘图例程中进行分配。发生这种情况时,会导致更频繁的垃圾回收,从而触发暂停,用户会看到一些丢帧。

就我个人而言,除非出于性能原因,否则我不会复制第二种技术。

如果我决定要重用和改变一个对象,我会通过该对象上的方法(OO 风格)而不是修改输入的过程风格方法来实现。例如

public class Matrix {
    public void setFromTransform(AffineTransform transform){
    }
}

关于java - 返回数组与填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42347977/

相关文章:

java - 使用自动间距写入文本文件

java - 使用 JGit 推送更改的文件时遇到 TransportException "Nothing to push"

java - token "void"上存在语法错误,@预期用于入口方法声明

java - 重新序列化后,对象是否可能具有不同的字节大小?

javascript - 将 , 替换为 <br>

java - 使用来自 Parse.com 的数据填充 String[] 数组 (Android)

c++ - 固定 : Access Violation Reading Location (pointer to string array)

c++ - 如果在 c++ 之前未定义,则定义函数/方法

c++ - 在声明期间用值初始化类方法的参数 C++

java - JVM 偶尔崩溃