带数组的对象或对象数组?

And*_*rew 4 java arrays performance

我有一个设计选择:我是否创建了一个包含对象的数组,每个包含一些不同的值,或者我创建一个包含几个不同值的数组的对象?

选项1:

Node[][] nodes;
class Node{
   double val1;
   double val2;
}
Run Code Online (Sandbox Code Playgroud)

选项2:

Node[] nodes;
class Node{
    double[] val1;
    double[] val2;
}
Run Code Online (Sandbox Code Playgroud)

我的直觉说选项2效率更高只是因为会有更少的对象,因此开销更少,但是double []会同样昂贵吗?

Jon*_*eet 7

你知道这里会有重大问题吗?你要创造多少这些?

你不应该过分担心性能开始 - 问问自己一个节点逻辑上是有多对值还是只有一对.让你的课程遵循你的建模 - 关注性能和内存使用情况,但不要让它将你的设计排除在自然模型之外.