0
在斯卡拉排序,我需要创建一个包含以下内容的结构:结构的值,而不是键
- 一个
Bitset
- 代表是占据一些细胞或不 - 的
Int
- 最后一个单元格占用 - 一个
Int
- 本职业
的成本,因为一个元素唯一地由的组合识别代表占据细胞和Int
代表的最后一个单元所占据,我尝试使用以下:
var tm = TreeMap.empty[Path, Int]
其中Path
是:
case class Path(occupied: BitSet, last: Int)
然而,问题是,我想中的元素进行排序TreeMap
由他们的成本(所以由他们的价值)。这显然不适用于TreeMap
。
所以我可以有一个结构,我的价值而不是关键的元素排序?
谢谢!我想通过'occup'和'last'来唯一标识'Path'元素,而不是'cost'。我可以使用'SortedSet'来做到这一点吗? – octavian
@octavian是的,如果您将'cost'定义为方法(参见上面的代码)或第二个构造函数参数列表,例如'case class Path(占用:BitSet,last:Int)(val cost:Int)'。案例类的身份只考虑第一个列表的参数。 –
'case class Path(占用:BitSet,last:Int)(val cost:Int)'不适用于我。当我尝试实例化类时出现错误: '错误:缺少构造函数的路径类路径中的路径 新路径(newBs,newLast)' – octavian