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

本文介绍Scala中三种不同的列表增量方法:使用模式匹配递归、创建多个临时结果列表以及利用ListBuffer进行高效操作。通过对比不同方法,展示了如何优化Scala代码以提高性能。
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
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值