【发布时间】:2018-03-13 15:28:29
【问题描述】:
所以我正在处理一个包含人名、位置等的字符串。 由于我是在Android中开发的,哪种数组在内存使用方面更好。
我的猜测是二维数组会占用更多内存。例如:人数为 5,位置数为 1。因此,如果我初始化一个 2D 数组,它将是 2x5。 [0][x] 代表人物,[1][x] 代表位置。所以这意味着 [1][1]-[1][4] 不会被使用并且为空。但是系统会为这些索引保留内存。
因此,两个单独的数组更好。
如果我错了,请纠正我。
【问题讨论】:
-
对于您所说的数组大小,差异无关紧要。使用任何使您的代码最易读的东西。
-
所以对内存影响不大?
-
不要使用数组,使用类。
public class Person { private String name; private Whatever location; } -
使用一个类,然后你可以简单地使用一个 List 来迭代并获得所需的结果,它将使事情变得简单,易于维护和更改。
-
就我个人而言,我不喜欢过度调整性能——我宁愿制作逻辑数据结构。如果人和位置是一对一的关系,我会毫不犹豫地使用
Map。如果人员和位置并不真正相关,我只需将它们分成两个数组或列表。使用 2D 数组可能会使代码更难被其他人理解。