首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组性能和如何获得自变量的性能

数组性能和如何获得自变量的性能
EN

Stack Overflow用户
提问于 2017-11-20 16:52:53
回答 1查看 42关注 0票数 1

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

现在,随着项目的发展,我要求smallObject中的每个变量都变成一个包含4个元素的数组-因此,原来的双精度变量变成了具有4个元素的double类型的数组- bigObject。

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

我期望的是,由于每次我访问数组时,我精确地定义了我需要的元素(不需要搜索它),所以性能应该大致相同,然而,性能降低了2-3倍。这些对象用在数组列表和队列中,可以增加到300万个元素。

性能下降是意料之中的吗?我该如何解决这个问题呢?我考虑使用单独的变量(a4,变成a1,a2,a3,a4) -但这需要我有不同的类,以便每个类都访问正确的变量,并使代码不可读。

耽误您时间,实在对不起。

EN

回答 1

Stack Overflow用户

发布于 2017-11-20 17:03:52

据我所知,如果你使用基于列表的对象来查找位置4中的元素,你必须从1到4,因为列表是基于指针的(O(n),其中n是数组的元素数,如果你习惯于大的O表示法)。如果你使用更简单的元素,比如真正的双倍数组,那么访问元素4应该在1次操作O(1)中完成...所以试着使用double[]。

希望这能对你有所帮助。

亚历克斯

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47388128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档