我见过两种通用类型的方法,它们的目标是返回一组值。第一个是最明显的:
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/