出于性能原因,我正在将一些代码迁移到GNU trove。
但是,我确实有一些TreeSet,我需要相当快速的更新和查找以及排序的迭代 - TreeSet的主要用例。当然,我会过去使用并检查我是否可以使用HashSet一样好。
对于SortedSet,GNU Trove的适当替代是什么?
谢谢。
答案 0 :(得分:2)
更新:我在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
都会给您带来惊人的良好性能!