1
不知何故,我似乎無法正確實現一個SortedMap。這裏有一個最小的(非)工作示例:在Scala中實現一個自定義的SortedMap
class MyMap[A](t: Map[Long, A]) extends SortedMap[Long, A] {
protected val internalMap = TreeMap(t.toArray: _*)
def -(key: Long) = MyMap(internalMap - key)
def get(key: Long) = internalMap.get(key)
def rangeImpl(from: Option[Long], until: Option[Long]) = TreeMap(internalMap.rangeImpl(from, until))
def iterator = internalMap.iterator
def ordering = internalMap.ordering
}
但是,無論我通入MyMap
構造函數,調用,例如,其size
,總是返回0
附錄:我只是將代碼複製粘貼到一個新項目中,並且它起作用8 \ \無論如何,讓我改變這個問題以使其有用:這是擴展SortedMap
的正確方法嗎?
用一個問題回答你的附錄:由於'TreeMap'實現'SortedMap',爲什麼你需要將它包裝在'MyMap'中?爲什麼不直接使用'TreeMap'? (只是爲了確認:我們正在談論'scala.collection.immutable.TreeMap',對吧?) – 2012-02-14 06:31:21
@Chris:這是一個最小的工作示例:-)在現實生活中,我想重新實現自己的函數用於不同種類的SortedMap。 – 2012-02-14 12:32:54
是的,我們正在討論'scala.collection.immutable.SortedMap'。 – 2012-02-14 12:33:30