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

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

例:

int ages[] = {0, 17, 2, 52, 25}; String names[] = {"None", "Mike", "Billy", "Tom", "Stan"}; int parent[] = {0, 3, 1, 0, 3}; 

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

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

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

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

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

仅当您尝试表示的内容可以更好地解释为对象时,才创建类/对象表示。

哈希地图是另一种解决方案。 例如,代替年龄和名称的不同数组,如果名称是唯一的,则可以使用名称作为键,使用age作为值。

类更好,但如果用例很窄,例如一个方法体,那么创建一个方法就很浪费。 如果你有一个Pair类,你可以专门为它而不创建一个新类。