java - 带有 GNU trove 的整数排序集

标签 java collections gnu treeset sortedset

出于性能原因,我正在将一些代码迁移到 GNU trove。

但是,我确实有一些 TreeSet,我需要相当快的更新和查找以及排序迭代 - TreeSet 的主要用例。当然,我会回顾一下它的使用,并检查我是否可以同样好地使用 HashSet。

GNU Trove 中 SortedSet 的合适替代品是什么?

谢谢。

最佳答案

更新:我在 Sourceforge 上的 Trove 中发现了一个相关的功能请求:http://sourceforge.net/tracker/index.php?func=detail&aid=1631704&group_id=39235&atid=424685

到目前为止似乎还没有 SortedSet,Trove 的好处在这里似乎没那么大:它将为原始类型节省一些内存(并避免装箱),但数据的算法组织可能会是一样的,它仍然需要入口对象。

更新#2:

对于许多用例 - 取决于您的写入访问模式 - 您应该能够通过使用 TIntArrayList 并使用 binarySearch 方法获得不错的性能查找(假定数组已排序!)

插入排序数组的时间复杂度为 O(n),因此当您对数组执行大量修改并在每次修改后进行查询时,这不是一个选项。但是,如果您的更改是批量添加,则只需在每次更新后调用 sort 即可获得令人惊讶的良好性能!

关于java - 带有 GNU trove 的整数排序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8231333/

相关文章:

java - 如何让本地 dynamodb 运行以便我的 java 应用程序可以与其连接?

java - 在java中使用Jubula客户端api关闭swing应用程序

java - 使用 Mockito 在 Java 中模拟谓词

java - 如何从 Java ArrayList 中删除重复的对象?

c++ - GNU GCC 编译器更新

c++ - 库的目标文件中包含未明确引用但可通过工厂获得的类在链接时被跳过

java - 错误: Value Fatal of type java. lang.String无法转换为JSONObject

java - 在 Java 中增加 Map 值的最有效方法

java - java中如何比较两个哈希集?

c - 无法使用 GNU GCC 在 matlab (Windows) 中编译 C 文件 (MEX)