[英]Highest and lowest elements in trove TIntSet?
TIntSet未排序(它是一个哈希集),因此要找到最小值或最大值,您需要迭代所有值。
fastutil在所有方面都比Trove更好。 IntSortedSet
接口具有firstInt()
和lastInt()
方法。
您为什么认为此集已排序? 看起来好像不是。 它没有实现JDK集合框架中的SortedSet或NavigableSet接口-那里没有这样的方法。
first()和last()方法实际上是从接口SortedSet https://docs.oracle.com/javase/7/docs/api/java/util/SortedSet.html#first%28%29继承的
如果您想要第一个/最后一个/单元格/楼层等类型的选项,则需要基于树的集合,并且trove没有类似的东西。 如果您想扩展TIntSet以拥有这种东西,那么
一个简单的选项是在并行int数组中维护排序后的值,并使用它来满足第一种/最后一种类型的请求,但这将需要额外的内存。
另一个选择是,您只能对值使用一个数组,但对keep进行排序并使用二进制搜索来支持map API。 与trove相比,get / put的速度可能有点慢,但由于trove的负载系数为.5,因此可以节省内存
因此,您可以根据需要进行权衡取舍。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.