【发布时间】:2011-08-11 19:25:30
【问题描述】:
我有一个设计选择:我是创建一个包含几个不同值的包装对象数组,还是创建一个包含几个不同值数组的对象?
选项 1:
Node[][] nodes;
class Node{
double val1;
double val2;
}
选项 2:
Node[] nodes;
class Node{
double[] val1;
double[] val2;
}
我的直觉是,选项 2 会更有效,只是因为对象更少,因此开销也更少,但是 double[] 会不会同样昂贵?
【问题讨论】:
-
明智的设计,首先考虑 Node 类并以这样一种方式设计它,即变量对整体语义最有意义。然后担心效率。
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil- Donald Knuth -
为什么不为您的阵列创建一个
Interface并让您的阵列实现它,这样,如果由于某种原因一个阵列不符合您的要求,您可以轻松地将其替换为另一个.
标签: java arrays performance