【问题标题】:What is the most efficient way to create empty ListBuffer?创建空 ListBuffer 的最有效方法是什么?
【发布时间】:2010-04-09 09:36:52
【问题描述】:

创建空 ListBuffer 最有效的方法是什么?

  1. val l1 = new mutable.ListBuffer[String]
  2. val l2 = mutable.ListBuffer[String] ()
  3. val l3 = mutable.ListBuffer.empty[String]

各有优劣吗?

【问题讨论】:

    标签: scala listbuffer


    【解决方案1】:

    按效率排序:

    1. new mutable.ListBuffer[String]
    2. mutable.ListBuffer.empty[String]
    3. mutable.ListBuffer[String] ()

    可以看ListBuffer&GenericCompanion的源码

    【讨论】:

      【解决方案2】:

      new mutable.ListBuffer[String] 只创建一个对象(列表缓冲区本身),因此它应该是最有效的方法。 mutable.ListBuffer[String] ()mutable.ListBuffer.empty[String] 都先创建一个 scala.collection.mutable.AddingBuilder 的实例,然后要求它提供一个新的 ListBuffer 实例。

      【讨论】:

      • 我搜索了一些源代码。 'object Map' 有 def empty[A, B]: Map[A, B] = new HashMap[A, B] buf 'object ListBuffer' 不定义为空。 :( ListBuffer.empty 看起来像你说的那样有开销。谢谢
      猜你喜欢
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      • 2017-09-14
      • 2010-11-20
      • 2010-09-24
      • 2012-01-10
      相关资源
      最近更新 更多