答案 0 :(得分:2)
TIntSet未排序(它是一个哈希集),因此为了找到最小值或最大值,您需要迭代所有值。
答案 1 :(得分:2)
fastutil比Trove更好。 firstInt()
与[{1}}和lastInt()
方法有IntSortedSet
接口。
答案 2 :(得分:0)
为什么你认为这个集合已经排序?它看起来不是。它没有从JDK集合框架实现SortedSet或NavigableSet接口 - 那里没有这样的方法。
first()和last()方法实际上是从接口SortedSet https://docs.oracle.com/javase/7/docs/api/java/util/SortedSet.html#first%28%29
继承的答案 3 :(得分:0)
如果你想要第一个/最后一个/单元格/地板等类型的选项,那么基于树的集合是必需的,并且特洛伊没有这样的东西。如果你想扩展TIntSet那么具有这样的东西
其中一个简单选项可以是在并行int数组中维护排序值,并使用它来提供第一种/最后一种类型的请求,但这需要额外的内存。
另一种选择是,您只能使用一个数组作为值,但保持已排序并使用二进制搜索来支持地图API。与trove相比,这对于获取/放置来说可能有点慢,但是你可以节省内存,因为trove有.5 loadfactor
因此,您可以根据自己想要的交易做出决定。