关闭

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

1239人阅读 评论(0) 收藏 举报
分类:
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
  }
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:312198次
    • 积分:3884
    • 等级:
    • 排名:第8145名
    • 原创:174篇
    • 转载:44篇
    • 译文:0篇
    • 评论:39条
    文章分类
    最新评论