区别在于,a
TreeSet可以使您始终对数据进行排序,而在上
Collections.sort()调用时,该方法将对数据进行排序
Set。
的时间复杂度
Collections.sort()是
O(n*log(n))同时
TreeSet的
add()的复杂性
log(n)。如果您使用相同大小的数据,则
TreeSet的情况下的复杂度将相同,因为您需要重复
add操作
n时间。
因此,您只需要决定是要一直
Set订购还是在某个时候订购。如果您的代码中有某种情况下不需要排序,则不需要,
TreeSet但如果始终需要对其进行排序,则应使用
TreeSet。
请记住 ,如果要排序,则
Set必须
List先从中创建一个,这可能会带来一些开销!
另一个警告: 正如其他人所提到的,
TreeSet您只能为1
Comparator提供1,而您可以为提供不同
Comparator的
Collections.sort()。因此,这 取决于您的用法
。您应该向我们提供有关您的用例的更多信息,以便为您提供完整的答案。



