数组性能以及如何获得独立变量的性能

时间:2017-11-20 08:52:53

标签: java arrays performance

我正在编写一个使用自定义对象的Java项目 - smallObject,它主要由双变量组成。

现在随着项目的发展,我要求smallObject中的每个变量都变成一个包含4个元素的数组 - 所以什么是double变量,变成了double类型的数组,有4个元素 - bigObject。

使用bigObject的进程与smallObject完全相同,唯一的区别是它们包含一个元素号,因此smallObject.a = 4,变为bigObject.a [2] = 4;

我一直在期待,因为每次我访问数组时,我都确切地定义了我需要的元素(不必搜索它),性能应该大致相同,但是性能会降低因子2-3。这些对象用于arraylists和队列,可以增长到300万个元素。

是否可以预期性能会下降?我该如何解决这个问题?正在考虑使用单个变量(a [4],变成a1,a2,a3,a4) - 但这需要我有不同的类,以便每个人访问正确的变量并使代码不可读。

感谢您的时间。

1 个答案:

答案 0 :(得分:-1)

据我所知,如果您使用基于列表的对象来查找位置4中的元素,则必须从1到4,因为列表基于指针(O(n),其中n是元素的数量)数组,如果你习惯大O表示法)。如果你使用更简单的元素,如真正的双数组访问元素4应该在1操作O(1)...所以尝试使用双[]。
希望这对你有所帮助 亚历