當我運行以下程序時,需要大約7到8分鐘才能執行。我真的不確定我錯在哪裏,因爲這個程序花了很多時間來執行。CopyOnWriteArraySet太慢
public class Test {
public static void main(String[] args) {
final Integer[] a= new Integer[1000000];
for (int i=0; i < a.length; i++) {
a[i] = i;
}
final List<Integer> source = Arrays.asList(a);
final Set<Integer> set = new CopyOnWriteArraySet<Integer>(source);
}
}
有人能幫助我明白了,爲什麼這個程序太慢。
我的機器是核心I7與4GB RAM
正如文檔所述,CopyOnWriteArraysSet由CopyOnWriteArraysList支持,並且*最適合於集合大小通常很小的應用程序*。 100萬遠不是小的。操作是O(n^2)。 –
@Siguza真的不是問題。它並不需要很多時間。 –