2012-08-23 33 views
0

我有一個thread其中兩個長arraylist每1秒後進行比較(顯然一個數組列表的變化,所以我比較)。性能降低,CPU利用率急劇增加。我想知道提高CPU性能的解決方案。什麼可以是一個好方法?除了使用數組列表有沒有其他的方法。替代爲陣列比較性能改進

+0

這取決於你是什麼比較,什麼算法中使用的是比較? – Shachillies

+0

您能否描述您通過比較試圖達到的目標,以及您在兩個列表中擁有哪些數據? – erbsman

+0

我正在使用冒泡排序算法,並且這兩個arraylist都包含相同數據類型的對象。 – AbhishekB

回答

0

Java集合框架包含排序的ArrayList(和其他收藏品爲此事),將低於您的實現冒泡排序的,這是O執行更多efficently方法(N^2),最壞的情況 - 你將能夠使用集合實現O(n log n)。

用法如下:

Collections.sort(yourArrayList);

這裏有使用的例子: http://onjava.com/onjava/2003/03/12/java_comp.html

0

你可以讓你的ArrayList和只存儲它是否已經改變。所以,如果您改變它,請執行類似boolean changed = true的操作。然後當你想檢查,而不是遍歷整個列表,你可以檢查if(changed)。然後記得每次檢查時設置changed = false

+0

但如果只是想有變化的數據是什麼?在這種情況下需要進行比較? – Shachillies

+0

問題是我沒有改變列表,該列表是從system.I檢索到的只是比較新1舊列表檢查事件 – AbhishekB

+1

@AbhishekB:哦確定。這個問題沒有提到。 –