java - 对象数组还是带数组的对象?

标签 java arrays performance

我有一个设计选择:我是创建一个包装器对象数组,每个对象包含几个不同的值,还是创建一个包含几个不同值数组的对象?

选项 1:

Node[][] nodes;
class Node{
   double val1;
   double val2;
}

选项 2:

Node[] nodes;
class Node{
    double[] val1;
    double[] val2;
}

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

最佳答案

你知道这里会有一个重大问题吗?您要创建多少个?

开始时您不必太担心性能 - 问问自己,单个节点逻辑上是否具有多对值或只有一对值。让您的类遵循您正在建模的内容 - 密切关注性能和内存使用情况,但不要让它支配您的设计以排除自然模型。

关于java - 对象数组还是带数组的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7031652/

相关文章:

javascript - 清除数组中一项的超时 - javascript

java - 这个小小的错别字会产生什么样的影响呢?

java - PDF clown 突出显示多个搜索词因 PDF 包含图像、彩色文本、复杂图表而失败

java System.out 丢失

java使用多线程和for循环将数组中的元素一一打印到单独的行中

python - 任何人都知道 Python 中的一个伟大的稀疏一维数组库?

c# - 遍历任意维度的数组

java - 每 30 秒更新一次订单状态

java - wildfly 10 - javax.servlet.ServletContainerInitializer : Provider org. springframework.web.SpringServletContainerInitializer 不是子类型

c - 如何仅分配或释放数组的一部分?