使用填充
fill
是为了填补的数据结构与预定义的元素标准Scala库功能。它非常方便,节省了大量的打字工作。
ListBuffer.fill(100)(ListBuffer("Scala" -> 1))
的Scala REPL
scala> import scala.collection.mutable._
import scala.collection.mutable._
scala> ListBuffer.fill(100)(ListBuffer("Scala" -> 1))
res4: scala.collection.mutable.ListBuffer[scala.collection.mutable.ListBuffer[(String, Int)]] = ListBuffer(ListBuffer((Scala,1)), ListBuffer((Scala,1)), ListBuffer((Scala,1)), ListBuffer((Scala,1)), ListBuffer((Scala,1)) ...
在标准库填充实施
def fill[A](n: Int)(elem: => A): CC[A] = {
val b = newBuilder[A]
b.sizeHint(n)
var i = 0
while (i < n) {
b += elem
i += 1
}
b.result()
}
上述实施为一层维数据结构。
一般建议
看起来像你使用的是像Java方式的Scala。不是很好。采取功能性的方式来处理明显的好处。
使用immutable
集合如List
,Vector
而不是mutable
集合。除非你有字符串原因,否则不要使用可变集合。
可以使用不可变List
List.fill(100)(List("scala" -> 1))
scala -> 1
做
同样的事情是一样的("scala", 1)