出于性能原因,我正在将一些代码迁移到 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/