带有 SortedMap 和 "reversed"SortedMap 的 Scala 类

标签 scala

我是 Scala 新手。我想在 Scala 中创建一个包含两个可变 SortedMap 的类,一个按正常排序顺序(递增),一个按反向排序顺序(递减)

class MyClass {
  var mapNormal : SortedMap[Int, Int] = SortedMap.empty
  var mapReversed : ??? = SortedMap.empty
}

var x  = new MyClass
x.mapNormal += (1 -> 50)
x.mapReversed += (2 -> 51)

我如何在 Scala 中执行此操作?

最佳答案

如果您查看 API docs for SortedMap ,您会发现 SortedMap.empty[A] 采用隐式 Ordering[A]。这意味着,您可以像以前那样调用该方法,并自动解析隐式(到 Int 的默认顺序,这正是您所想的那样),或者您可以提供一个显式顺序:

class MyClass {
  var mapNormal : SortedMap[Int, Int] = SortedMap.empty
  var mapReversed : SortedMap[Int, Int] = SortedMap.empty(mapNormal.ordering.reverse)
}

Int 的隐式排序在 scala.math.Ordering 的伴随对象中定义以及其他默认顺序,以防万一你想知道。

关于带有 SortedMap 和 "reversed"SortedMap 的 Scala 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29798401/

相关文章:

java - 使用 Scala 的 poi-ooxml-schemas-3.9.jar 的 Sbt 编译错误

mysql - 游戏框架 2.5.4。无法连接到数据库 [db] (MySql)

list - 如何在 Scala 中保持表达式的函数式风格

scala - 如何在case语句中引用val?

emacs - 无限循环关闭ensime

performance - Scala 中的模式匹配是如何在字节码级别实现的?

scala - 不明白 scalaz 内函数

database - 是否计划像在 F# 中那样为 Scala 的 SIQ (ScalaIntegratedQuery) 支持 "type providers"?

c - 如何使用 Java/Scala 在内存 G-wan 中保存数据结构

scala - 有没有一种简单的方法可以将 scaladoc 集成到 IntelliJ Idea 中?