scala.collections.mutable.ArrayBuilder和scala.collections.mutable.ArrayBuffer有什么区别?例如,如果我需要构建一个Array [Int],最好使用它?是否存在性能差异,例如java.lang.StringBuffer和java.lang.StringBuilder?
最佳答案
ArrayBuilder
是Builder
,构建器用于通过向其添加元素来构造其他集合。通常,不应将构建器直接用于客户端代码中。ArrayBuffer
是Buffer
和Seq
-缓冲区是可以向其高效附加元素的序列。序列带有许多辅助操作。
您可能需要一个ArrayBuffer
。它旨在用作Java中ArrayList
的替代方法。 ArrayBuffer
类是一个功能强大的序列集合,具有所有批量数据操作,例如foreach
,map
,filter
,zip
和friends,而ArrayBuilder
仅配备+=
来添加元素,而result
却配备了ArrayBuilder
来获取数组。
您可能会喜欢Int
的一个地方是,当您针对像ArrayBuilder
这样的原始类型实例化它时,您会关心性能。在这种情况下,ArrayBuffer
变体专用于不同的原始类型,并保留适当原始类型的基础数组,而ojit_code始终在其下方保留一个对象数组-您添加到它的每个原始都经过装箱。
实例化数组缓冲区:
new ArrayBuffer[Int] // gives you an array buffer that will hold boxed integers
要实例化数组生成器:
new ArrayBuilder.ofInt // gives you a manually specialized array builder that will hold real primitives
关于scala - Scala中的ArrayBuffer与ArrayBuilder,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15839519/