TreeSet vs Collections.sort()Java

时间:2018-11-18 18:21:22

标签: java collections

假设我有两个选项可将项目添加到集合中并对其进行排序

选项1:遍历所有项目,并在进行迭代时将其添加到TreeSet中

选项2:遍历所有项目并将其添加到列表中,并在添加所有项目之后使用Collections.sort()方法。

这两个选项中哪个选项的运行时间更快?

1 个答案:

答案 0 :(得分:0)

我会选择选项2。

Collections.sort()的时间复杂度为O(n log(n))(添加元素为O(n),但最后O(n)+ O(nlog(n))= O( nlog(n))),而TreeSet.Add的复杂度为O(log n),在添加所有项目时会导致O(n log n)。因此,复杂度看起来是相同的。最好的方法是分析您的实际代码,这两个解决方案之间的差异是常量因子,Big O中没有显示该常量因子,对于TreeSet,我敢肯定这一比例很高。