Java コード ベースを純粋な Scala に移行していますが、この 1 つのコードに行き詰まっています。私は IntervalMap の実装を持っています。つまり、範囲を効率的にマッピングできるデータ構造を持ってい[from,to]
ます。values
set
delete
get
O(log n)
このコードは Java を使用してjava.util.TreeMaps
おり、Scala への移行中に 2 つの大きな問題に遭遇しました。
Scalaにはありません
mutable.TreeMap
-キーを保存し、値をauxiliaryに保存するためにmutable.TreeSet
(奇妙なことにScalaにはありますmutable.TreeSet
が、ありません)を使用して回避することにしました。これは不愉快なハックですが、もっと良い方法はありますか?mutable.TreeMap
mutable.Map
次の問題は、Scalaには、Javaのすべての操作である、、に
mutable.TreeSet
相当するものがないことです。java.util.TreeSet
ceilingKey
floorEntry
pollFirst
pollLast
O(log n)
では、コードを Scala に移行するにはどうすればよいでしょうか? このような状況でのベスト プラクティスは何ですか? 独自のツリー実装を書きたくありません。私が気付いていない IntervalMaps を書くより慣用的な Scala の方法はありますか? それとも、評判の良いライブラリがありますか?それとも、Scala は、そのツリーセットと存在しない TreeMaps を追加しただけで、ここで単純に吸うことができますか。もちろん、私はTreeMap
Scala で Java を使用することもできますが、それは見苦しく、素晴らしい Scala コレクション機能をすべて失うので、Java を使用したほうがよいでしょう。
これが私の現在のJavaコードです: https://gist.github.com/pathikrit/5574521