scala.collections.mutable.ArrayBuilder和scala.collections.mutable.ArrayBuffer有什么区别?例如,如果我需要构建一个Array [Int],最好使用它?是否存在性能差异,例如java.lang.StringBuffer和java.lang.StringBuilder?

最佳答案

ArrayBuilderBuilder,构建器用于通过向其添加元素来构造其他集合。通常,不应将构建器直接用于客户端代码中。
ArrayBufferBufferSeq-缓冲区是可以向其高效附加元素的序列。序列带有许多辅助操作。

您可能需要一个ArrayBuffer。它旨在用作Java中ArrayList的替代方法。 ArrayBuffer类是一个功能强大的序列集合,具有所有批量数据操作,例如foreachmapfilterzip和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/

10-12 22:36