当前位置: 首页 > 面试题库 >

如何使用预排序的数据初始化TreeMap?

公羊学义
2023-03-14
问题内容

我的应用程序使用TreeMap保持数据排序并进行log(n)查找和插入。在一般情况下,当应用程序运行时,这种方法效果很好,但是当应用程序首次启动时,我需要使用以
排序顺序 (升序)得到的数百万个长度来初始化TreeMap 。

由于这些初始化值 已经 排序,是否有任何方法可以将它们插入到TreeMap中,而无需支付树插入和重新平衡的log(n)成本?


问题答案:

当然!该TreeMap.putAll方法(以及采用SortedMap的TreeMap构造函数)调用一个buildFromSorted内部调用的方法,该方法在docs中被描述为:“根据排序后的数据构建线性时间树”,因此听起来像它可以完成您想要的事情。

只需为该putAll方法提供一些实现Map
的方法,但是该方法在地图的entryset迭代器(Map.entrySet().iterator())处返回排序值列表。



 类似资料:
  • 初始化数据 打开MainSetup类,在Daos语句后面插入新建根用户的代码 // 初始化默认根用户 if (dao.count(User.class) == 0) { User user = new User(); user.setName("admin"); user.setPassword

  • 对于“何时”有很多很好的答案,比如在这个线程中——静态类初始化何时发生?现在我的问题是“如何”。这是斯蒂芬C.的回答中的一段话 类静态初始化通常在第一次发生以下事件之前立即发生: 将创建该类的一个实例, 调用该类的静态方法, 已分配类的静态字段, 使用非恒定静态场,或 对于顶级类,执行词汇嵌套在类中的assert语句 那么它是如何在内部完成的呢?每个可能触发初始化的指令都用包装?任何工作的细节:-

  • 本文向大家介绍SpringBoot使用flyway初始化数据库,包括了SpringBoot使用flyway初始化数据库的使用技巧和注意事项,需要的朋友参考一下 概述 Flyway这款数据库版本工具就算大家没有使用过但也略有耳闻了,SpringBoot对该款工具进行集成的框架可以让我们在启动SpringBoot应用时自动去找SQL版本文件进行比对执行,但在迁移或初始化时往往还是需要先手动进行下数据库

  • 问题内容: 我正在编写Web应用程序,并且想知道推荐的填充原始数据的方法是什么。这是JPA / Hibernate和Spring应用程序,由maven构建。到目前为止,我已经使用脚本将手工数据填充到数据库中,并填充了初始数据。 单元测试使用自己的数据,这些数据是在每次测试之前用代码创建的。我的测试类扩展了 org.springframework.test.jpa.AbstractJpaTests

  • 我试图从WebClient中替换RestTemplate,因为根据Java文档,RestTemple将被弃用。Spring团队建议尽可能使用WebClient。 之前的RestTempalte代码如下 我想从WebClient替换RestTemplate。所以我实现了类WebClientConnection,如下所示 我使用这个依赖项 Webclient create 上有堆栈溢出错误 如何正确地

  • 我用run方法调用它。如果有人能提前解决感谢