scala进阶28-实现List高效遍历

原创 2016年08月30日 00:50:46
object ListTest {
  def main(args: Array[String]): Unit = {
    val list = List(1, 3, 4, 5)
    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)
  }

  /**
    * 这种方式实现,会产生很多中间的result
    */
  def increment_MoreEffective(list: List[Int]) : List[Int] = {
    var result = List[Int]()
    for (element <- list) result = result ::: List(element + 1)
    result
  }

  /**
    * 借助ListBuffer,最高效的方式
    */
  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
  }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

scala List集合的用法

一、前言: 人们常说,Scala是一个难掌握的语言,一是其面向函数和面向对象结合的原因,二是其丰富的语法和内置函数。 对于Conllection 这一章的内容,更多的是利用内置函数灵活地运用,避免...

scala循环遍历

for 循环遍历 scala循环遍历 foreach

Scala中ListBuffer高效遍历

package com.dt.scala.list object ListBuffer_Internals { def main(args: Array[String]): Unit = { ...

Scala中List的ListBuffer实现高效的遍历计算

分类: scala 2015-08-16 10:49 309人阅读 评论(0) 收藏 举报 scalasparkListBuffer 目录(?)[+] 我们通过对比下列4组程序,对比,发...

scala的list的常用的api总结

package com.dev.scala.collection /**  * @author user  */ object DemoObject {   def main...

Scala集合操作—List

Scala常用操作:http://www.yiibai.com/scala/scala_lists.html        Scala中列表是非常类似于数组,这意味着,一个列表的所有元素都具有相同的类...

scala map/list/array/的常用内置遍历操作总结

scala map/list/array/的常用内置遍历操作总结。Scala 是面向函数的,所以在集合函数里,它很轻易地提供了非常丰富遍历操作,数组变换操作。这对于我们数据挖掘,爬虫,文本处理等都非常...

Scala入门到精通——第三节 Array、List

本节主要内容 数组操作实战 列表List操作实战 数组操作实战1 定长数组//定义一个长度为10的数值数组 scala> val numberArray=new Array[Int](10) numb...

第82讲:Scala中List的ListBuffer实现高效的遍历计算

我们通过对比下列3组程序,对比,发现优缺点第一组: 递归代码 def main(args: Array[String]) { val data = 1 to 20000 val currn...

Scala中使用ListBuffer高效遍历List

在Scala中,使用ListBuffer高效遍历List。
  • yyywyr
  • yyywyr
  • 2016-01-10 11:00
  • 1963
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)