为什么在Java中使用并行数组?

zen*_*ngr 6 java parallel-arrays

Java中的并行数组是否有任何实际用例?维护相互关联的N个阵列似乎太麻烦了.

例:

int  ages[]   = {0,          17,        2,          52,         25};
String names[] = {"None",    "Mike",    "Billy",    "Tom",      "Stan"};
int  parent[] = {0,          3,         1,          0,          3};
Run Code Online (Sandbox Code Playgroud)

我可以创建一个Person类并将对象存储在一个单独的数组中.会贵一点,但更容易使用吗?

Ste*_*n C 12

Java中并行数组的唯一真正优势是作为(IMO极端)度量来减少对象分配和/或堆使用.对于足够大的对象集合,3个数组占用的空间更少,并且使用的对象少于某个自定义类的单个数组实例.

这种方法通常是一个坏主意,因为它会使您的代码更加脆弱.在大多数情况下,创建和使用自定义类是最佳方法.

注意:Android 的性能提示另有建议,但这些提示主要侧重于降低GC暂停对用户体验的频率/影响.甚至这个建议也有几个方面需要注意.

  • 是的,这是Android开发中要记住的事情.并非所有Android设备都相同,而且手机通常资源有限.引用Android开发者参考中的性能提示,`"如果你需要实现一个存储(Foo,Bar)元组元组的容器,试着记住两个并行的Foo []和Bar []数组通常要好得多而不是一个自定义(Foo,Bar)对象数组."`http://developer.android.com/training/articles/perf-tips.html (4认同)

Jim*_*son 11

并行数组是像Basic(原始数据)这样的语言的保留,它没有除数组之外的数据结构.您应该按照建议定义对象.