在scala中,ListBuffer是可变的,所以可以使用其对List进行遍历操作。ListBuffer在包scala.collection.mutable.ListBuffer中。
1、代码
package com.yy.enhance /** * ListBuffer使用示例 * 功能:为List中的每个元素加1 */ case object ListOp{ //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 } //使用ListBuffer:可变---效率高 def incrementWithListBuffer(list:List[Int]):List[Int]={ import scala.collection.mutable.ListBuffer var listBuffer = new ListBuffer[Int] for(element <- list) listBuffer += element +1 listBuffer.toList } } object ListBufferTest extends App { val list = List(1,2,3,4,5,6,7,8,9) //使用List遍历方法 println(ListOp.increment(list)) println(ListOp.increment_MoreEffective(list)) println(ListOp.incrementWithListBuffer(list)) }
2、结果
List(2, 3, 4, 5, 6, 7, 8, 9, 10) List(2, 3, 4, 5, 6, 7, 8, 9, 10) List(2, 3, 4, 5, 6, 7, 8, 9, 10)可以看出,结果相同,但是效率是不同的。