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