如何使用预排序的数据初始化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

回到顶部