替代阵列比较以提高性能

时间:2012-08-23 10:36:36

标签: java android performance cpu-usage

我有一个thread,每隔一秒比较两个长arraylist(显然,一个arraylist改变了,所以我进行了比较)。性能降低,CPU利用率大幅提升。我想知道一个提高CPU性能的解决方案。什么是好方法?除了使用数组列表之外还有其他方法。

2 个答案:

答案 0 :(得分:0)

您可以保留您的ArrayList,只需存储它是否已更改。因此,如果您更改它,请执行boolean changed = true之类的操作。然后,当您想要检查时,您只需检查if(changed),而不是遍历整个列表。然后记得每次检查时设置changed = false

答案 1 :(得分:0)

Java Collections框架包含对ArrayLists(以及其他集合)进行排序的方法,这些方法将比执行冒泡排序(O(n ^ 2),最坏的情况 - 执行更有效 - 您将能够使用集合实现O(n log n)。

用法将是:

Collections.sort(yourArrayList);

这里有一个例子: http://onjava.com/onjava/2003/03/12/java_comp.html