如何使用预排序的数据初始化TreeMap?
我的应用程序使用TreeMap保持数据排序并进行log(n)查找和插入。在一般情况下,当应用程序运行时,这种方法效果很好,但是当应用程序首次启动时,我需要使用以
(升序)得到的数百万个长度来初始化TreeMap 。
由于这些初始化值 已经 排序,是否有任何方法可以将它们插入到TreeMap中,而无需支付树插入和重新平衡的log(n)成本?
回答:
当然!该TreeMap.putAll
方法(以及采用SortedMap的TreeMap构造函数)调用一个buildFromSorted
内部调用的方法,该方法在docs中被描述为:“根据排序后的数据构建线性时间树”,因此听起来像它可以完成您想要的事情。
只需为该putAll
方法提供一些实现Map
的方法,但是该方法在地图的entryset迭代器(Map.entrySet().iterator()
)处返回排序值列表。
以上是 如何使用预排序的数据初始化TreeMap? 的全部内容, 来源链接: utcz.com/qa/402456.html