【发布时间】:2014-08-20 12:42:14
【问题描述】:
简单地说,Scala 集合库中是否有一种方法可以为索引序列提供类似地图的视图,使用索引作为键?
我有以下特点(16 个元素的限制是由外部 API 设计和强制执行的)
trait Container[T >: Null]
{
private val ElemsLimit = 16 // block's meta is 4-bit
private var table: Seq[T] = null
protected def register(elems: (Int, T)*)(implicit manifest: Manifest[T]) =
{
if (table != null)
throw new IllegalStateException("Already initialized")
val array = Array.fill[T](ElemsLimit)(null)
elems foreach { el => array(el._1) = el._2 }
table = array
}
def elem(idx: Int) = table(idx)
def allElems = table.zipWithIndex.filter(_ != null) // some mapView instead of zipWithIndex
}
我知道我可以构建不可变地图,坦率地说,它可以很好地满足我的目的。我自己也可以为此编写 MapView。虽然我真的很感兴趣,如果某处有现有的解决方案。或者,也许,我错过了数组支持的不可变映射。
谢谢。
【问题讨论】:
标签: scala