需要高性能的Scala/Java集合
我正在寻找一个Scala(或Java/Guava)集合,它支持O(1)访问(最好是删除)它的最小元素,以及O(logn)插入和删除任意元素需要高性能的Scala/Java集合,java,scala,collections,guava,scala-collections,Java,Scala,Collections,Guava,Scala Collections,我正在寻找一个Scala(或Java/Guava)集合,它支持O(1)访问(最好是删除)它的最小元素,以及O(logn)插入和删除任意元素 想法?在ArrayList的支持下创建自己的收藏。它需要额外的字段最小元素和最小元素的位置。如果元素是新的最小值,则在添加该元素时更新这些字段。创建自己的由ArrayList支持的集合。它需要额外的字段最小元素和最小元素的位置。如果元素是新的最小值,则在添加该元素时更新这些字段。: 实施说明:此实施为排队和退队方法(offer、poll、remove()和a
想法?在ArrayList的支持下创建自己的收藏。它需要额外的字段最小元素和最小元素的位置。如果元素是新的最小值,则在添加该元素时更新这些字段。创建自己的由ArrayList支持的集合。它需要额外的字段最小元素和最小元素的位置。如果元素是新的最小值,则在添加该元素时更新这些字段。: 实施说明:此实施为排队和退队方法(
offer
、poll
、remove()
和add
)提供了O(log(n))时间;删除(对象)
和包含(对象)
方法的线性时间;检索方法的固定时间(peek
、元素
、和大小
)
这个班是学校的一员
:
实施说明:此实施为排队和退队方法(offer
、poll
、remove()
和add
)提供了O(log(n))时间;删除(对象)
和包含(对象)
方法的线性时间;检索方法的固定时间(peek
、元素
、和大小
)
这个班是学校的一员
这听起来像是你可以用一个指向最小元素的额外指针包装一个
TreeSet
,这样在每次插入或删除后(已经是O(logn))你都会更新当前的最小元素(O(logn)来查询),您正在寻找PriorityQueue
:考虑Scala集合的性能特征时,这是一个很好的起点。@jwvh NoPriorityQueue
。。。羞耻;)@迪玛,我说过这只是一个开始。该页面可能需要一个很好的更新。这听起来像是你可以用一个指向最小元素的额外指针包装一个TreeSet
,这样在每次插入或删除(已经是O(logn))之后,你都可以更新当前的最小元素(O(logn))来查询。我想,您正在寻找PriorityQueue
:考虑Scala集合的性能特征时,这是一个很好的起点。@jwvh NoPriorityQueue
。。。羞耻;)@迪玛,我说过这只是一个开始。该页面可能需要一个很好的更新。我考虑了PriorityQueue,但由于备份存储是使用堆实现的,因此无法获得我想要的O(logn)remove(Object)
。我考虑了PriorityQueue,但因为备份存储是使用堆实现的,所以无法获得O(logn)remove(Object)
我想要的。