java - 什么更快? 1)向treeset添加元素VS 2)添加到Hashset然后对hashset元素进行排序

标签 java collections

我想知道哪个集合可以提供更好的性能。如果需要的结果是获得不重复排序的集合。

  1. treeSet - O(nlogn)
  2. hashSet - 添加 n 个元素的时间复杂度为 O(n),然后使用 collection.sort() 排序的时间复杂度为 O(nlogn)

理论上两者给出的结果是相同的,但想知道如果传递的输入长度超过 100K,是否真的有任何区别。还有可能是什么原因呢?

最佳答案

Collections.sort() 在内部使用 TimSort,这可能比向 TreeSet 添加元素要快一些。但更重要的是,HashSet 和 Collections.sort() 的内存开销应该低于 TreeSet。

关于java - 什么更快? 1)向treeset添加元素VS 2)添加到Hashset然后对hashset元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40034100/

相关文章:

java - 如果存在零长度数组,我是否应该返回空列表?

java - 如何配置 EC2 以在我的 Spring Boot 应用程序中处理表情符号

java - 使用 onClick 函数获取 EditText 字段时遇到问题

java - 将嵌套 json 解析为原始字符串

java - 填充图 - java

java - Java Set 中对象的可变字段

java - 使用过滤仅从 Java8 中的文件夹中获取文件名

java - Java Vector 类的哪些方法是同步的?

java - 在出现错误时从 Web 服务设计不同的 JSON 响应

java - 为什么 JAXB 有时会映射到 JAXBElement?