我正在尝试实现一个基于HashMap的树,该树支持给定根密钥的O(1)子树查找.为了达到这个目标,我正在努力做到以下几点:
scala> type Q = HashMap[Char, Q]
<console>:6: error: illegal cyclic reference involving type Q
type Q = HashMap[Char, Q]
^
Run Code Online (Sandbox Code Playgroud)
所以问题是,有没有办法让我做一些这样的事情而不诉诸丑陋HashMap[Char, Any]的随后的价值观HashMap[Char, Any]?
现在,我也看到我可以使用类似下面的内容来避免循环引用错误,它甚至可能更干净 - 但是找到如何正确地执行它的第一种方式很好,只是为了教育价值.
import collections.mutable.HashMap
class LTree {
val children = new HashMap[Char, LTree]
}
Run Code Online (Sandbox Code Playgroud)
谢谢一堆.
Art*_*mGr 16
我可能没有"得到"这个问题,但是怎么样
class L {
type Q = java.util.HashMap[Char, this.type]
}
Run Code Online (Sandbox Code Playgroud)
要么
class Q extends java.util.HashMap[Char, Q]
Run Code Online (Sandbox Code Playgroud)