2010-07-21 54 views
3

collection.jcl以前有IdentityHashMap:有没有在新的2.8集合库中构建同样的东西(可能是定制的等式关系)的方法?有没有在斯卡拉创建一个IdentityMap的方法2.8

+0

顺便说一句,你能解释一下“定制的平等关系”是什么意思吗? – 2010-07-21 16:47:56

+0

我的意思是一种注入* a等于b的方法iff X对于某些可以自己定义的X可以保留* – 2010-07-25 10:52:11

回答

4

scala.collection.mutable.HashMap有两种保护方法,elemEqualselemHashCode。如果您覆盖它们,您可以创建自己的IdentityHashMap

scala.collection.immutable.HashMap只有elemHashCode。 (我不知道为什么,这是非正式的。)

+0

这对于不可变的映射不起作用,因为每次添加时都会创建一个新的。所以你必须修改更新/删除逻辑,这可能会很快变得混乱 – 2010-07-25 10:54:25

+0

是的,这是有道理的。谢谢。 – 2010-07-25 14:23:05