码迷,mamicode.com
首页 > 其他好文 > 详细

Scala深入浅出实战经典 第82讲:Scala中List的ListBuffer是如何实现高效的遍历计算的?

时间:2015-09-11 12:50:23      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:scala

package com.dt.scala.list


object ListBuffer_Internals {


  def main(args: Array[String]) {

    val list = List(1,2,3,4,5,6,7,8,9)

    increment(list)

    increment_MoreEffective(list)

    increment_MostEffective(list)

  }

  

  def increment(list: List[Int]): List[Int] = list match {

      case List() => List()

      case head :: tail => head + 1 :: increment(tail)

    }

  def increment_MoreEffective(list: List[Int]): List[Int] = {

    var result = List[Int]()

    for(element <- list) result = result ::: List(element +1)

    result

  }

  def increment_MostEffective(list: List[Int]): List[Int] = {

    import scala.collection.mutable.ListBuffer

    var buffer = new ListBuffer[Int]

for(element <- list) buffer += element + 1

buffer.toList

  }


}


3种方法:

1. 产生了过多函数调用的堆栈
2. 产生了很多中间结果
3. 最优


信息来源于 DT大数据梦工厂,微信公众号:DT_Spark
视频地址:http://edu.51cto.com/lesson/id-71305.html

Scala深入浅出实战经典 第82讲:Scala中List的ListBuffer是如何实现高效的遍历计算的?

标签:scala

原文地址:http://2615187.blog.51cto.com/2605187/1693688

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!