当我运行以下程序时,需要大约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真的不是问题。它并不需要很多时间。 –