我一直在研究不同Java集合类型的速度,并遇到了一些奇怪的东西.我将1,000,000个对象从静态数组添加到不同的集合类型并返回所需的时间.这部分代码工作正常.
在进一步的调查中,我注意到它TreeSet没有收到所有1,000,000个对象,并且每次都收到不同的金额.下面是将对象从数组传输到的方法TreeSet:
public int treeSet(int num)
{
Date before = new Date();
for(int i=0; i<num; i++)
{
treeSet.add(personsArray[i]);
}
Date after = new Date();
return (int) (after.getTime() - before.getTime());
}
Run Code Online (Sandbox Code Playgroud)
下面是调用treeSet()方法并测试其大小的代码.
System.out.println("\tTree set with 1,000,000 objects--" + t.treeSet(1000000));
System.out.println("Tree set contains " + t.treeSet.size() + " elements");
Run Code Online (Sandbox Code Playgroud)
这个输出是:
Tree set with 1,000,000 objects--1192
Tree set contains 975741 elements
Run Code Online (Sandbox Code Playgroud)
我希望有人可以向我解释为什么TreeSet没有收到所有的对象以及它为什么收到不一致的金额.