检查:http://www.scala-lang.org/docu/files/collections-api/collections_40.html
它表示ArrayBuffer在请求尾部时需要线性时间。但是,附加
时要快得多我的理解是ArrayBuffer只是一个动态数组。
为什么追加是分摊常数时间但是获得最后一个元素需要线性时间?
答案 0 :(得分:5)
tail
不是最后一个元素,它是所有元素,但第一个元素。你想要last
。
Seq('a', 'b', 'c').head // 'a'
Seq('a', 'b', 'c').tail // Seq('b', 'c')
Seq('a', 'b', 'c').init // Seq('a', 'b')
Seq('a', 'b', 'c').last // 'c'