并行列表与具有多个变量的类列表

时间:2013-01-22 02:10:36

标签: java android

我正在创建跟踪位置的x,y值列表。研究android优化是非常重要的,所以我想知道从资源使用的角度来看哪种方法会更好。

方法1: 创建一个包含x和y的int的类(Position),然后创建一个list:positions。

方法2: 创建并行列表:positionsX和positionsY。

我在问,因为方法1对于OO编码似乎是最友好的用户,但我对Java或android的内部工作原理还不够了,我担心额外课程的开销会抵消任何好处。

或者他们是否足够接近并不重要?

2 个答案:

答案 0 :(得分:1)

两种解决方案之间的性能差异可以忽略不计。根据更详细的细节,例如什么类型的列表(数组,列表,地图等)以及您如何访问数据将决定哪一个可以忽略不计。

然而,从可读性,面向对象和可维护性的角度来看,方法1以压倒性优势获胜。

答案 1 :(得分:0)

Android上的Java有一个缓慢的垃圾收集。如果您创建并放弃了许多Position对象,那么当GC启动时,您的应用程序可能会有可见的暂停。 如果您使用类解决方案,则可以在类中创建对象缓存以缓解此问题。

如果你使用数组,请注意迭代器和foreach循环:上次我检查时,他们为每个元素创建了一个新对象。

无论如何,只有当您创建这些对象的非常大量(如每秒数千个)时,才会看到性能差异。