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

将Java TreeMap代码迁移到Scala?

东方辉
2023-03-14
问题内容

我正在将Java代码库迁移到纯Scala,并且只能使用这一段代码。我有一个IntervalMap的实现,即一个数据结构,可让您有效地将范围映射[from,to]到,和操作全部values所在的位置(与IntervalTree或SegmentTree略有不同)。set``delete``get``O(log n)

这段代码使用Java,java.util.TreeMaps并且在迁移到Scala时遇到了两个大问题:

  1. Scala没有mutable.TreeMap-我决定使用mutable.TreeSet(奇怪的Scala有mutable.TreeSet但没有mutable.TreeMap)存储密钥并将值存储在辅助中来解决它mutable.Map。这是令人不快的骇客,但是还有更好的方法吗?

  2. 接下来的问题是Scala的mutable.TreeSet没有类似的java.util.TreeSetceilingKeyfloorEntrypollFirstpollLast这些都是O(log n)在Java操作。

那么,如何最好地将代码迁移到Scala?在这些情况下的最佳做法是什么?我真的不想编写自己的树实现。我还不知道有没有一种更惯用的Scala编写IntervalMap的方式?还是那里有一些知名的图书馆?还是Scala只是用其粗糙的TreeSet和不存在的TreeMap吸吮了这里。当然,我只能TreeMap在Scala中使用Java
,但这很丑陋,而且我失去了所有出色的Scala集合功能,于是我不妨使用Java。

这是我当前的Java代码:https :
//gist.github.com/pathikrit/5574521


问题答案:

Scala 2.12
mutable.TreeMap终于有了:https :
//github.com/scala/scala/pull/4504



 类似资料:
  • 问题内容: 我正在从elasticsearch1.4.3迁移到2.4,并替换了elasticsearch文档中引用的一段代码,而其他参考则需要替换andFilter? 码:- 问题答案: 您可以这样做:

  • 我升级为不和谐。JSV12,但它破坏了我现有的v11代码。下面是一些导致错误的示例: 如何将代码迁移到Discord。JSV12并修复这些错误?在哪里可以看到v12引入的突破性更改?

  • Spring云流是否支持下面的Kafka流应用程序。下面是Kafka示例应用程序摘录中的代码。感谢您的任何反馈或支持。

  • Pillow 是对 PIL 的功能增加,想要在 Pillow 下运行 PIL 的代码,只需要: 把这个: import Image 修改成: from PIL import Image 注意,:py:mod:`_imaging` 模块已经被移除,现在可以这样导入:: from PIL.Image import core as _imaging 另外,图像插件导入机制已经改变。Pi

  • 问题内容: 我正在从弹性搜索1.4.3迁移到2.4,并且替换了弹性搜索文档中引用的一段代码,而其他参考则需要替换andFilter? 码:- 问题答案: 您可以这样做:

  • 在我编写的一个应用程序中,我有一个从Core-Data解析大量数据并将其显示到图形中的过程。在进行此处理时,我最终还将数据写入CSV文件。我创建了一个名为CSVLine的单独类,它有助于创建CSV文件。 对于我的140k测试用例,记录了我的Objective-C代码需要大约12秒才能运行。将类“迁移”到swift后,现在需要280-360秒才能运行。显然我做了一些可怕的事情。 使用仪器,我能够识别