Scala 为什么调用;“尾巴”;在ArrayBuffer上使用线性时间?

Scala 为什么调用;“尾巴”;在ArrayBuffer上使用线性时间?,scala,data-structures,Scala,Data Structures,检查: 它说ArrayBuffer在请求尾部时需要线性时间。但是,附加时速度要快得多 我的理解是ArrayBuffer只是一个动态数组 为什么追加是固定时间摊销,但获取最后一个元素需要线性时间?tail不是最后一个元素,而是第一个元素以外的所有元素。您需要最后一个 Seq('a', 'b', 'c').head // 'a' Seq('a', 'b', 'c').tail // Seq('b', 'c') Seq('a', 'b', 'c').init // Seq('a', 'b') S

检查:

它说ArrayBuffer在请求尾部时需要线性时间。但是,附加时速度要快得多

我的理解是ArrayBuffer只是一个动态数组

为什么追加是固定时间摊销,但获取最后一个元素需要线性时间?

tail
不是最后一个元素,而是第一个元素以外的所有元素。您需要
最后一个

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'

pffft,我想我需要吃早餐。非常感谢。