Since ==
不适用于数组,我无法有效地创建一组数组(或带有数组键的映射)。我宁愿不承受将数组转换为向量或列表或其他东西的性能损失。是否有一种轻量级的方法来定义数组上的自然比较和哈希码,以便我可以将它们放在集合中?
Use WrappedArray http://www.scala-lang.org/api/current/index.html#scala.collection.mutable.WrappedArray from collection.mutable
。它以最小的开销为数组提供了适当的相等性。apply
, update
等调用被委托给底层数组。还有一些针对原始类型的特殊类(例如WrappedArray.ofInt
)以避免装箱和拆箱。
scala> new WrappedArray.ofInt(Array(2, 3, 4))
res35: scala.collection.mutable.WrappedArray.ofInt = WrappedArray(2, 3, 4)
scala> new WrappedArray.ofInt(Array(2, 3, 4))
res36: scala.collection.mutable.WrappedArray.ofInt = WrappedArray(2, 3, 4)
scala> res35 == res36
res37: Boolean = true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)