加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 为什么在ArrayBuffer上调用“tail”需要线性时间?

发布时间:2020-12-16 10:04:45 所属栏目:安全 来源:网络整理
导读:检查: http://www.scala-lang.org/docu/files/collections-api/collections_40.html 它说ArrayBuffer在请求尾部时需要线性时间.但是,附加时速度要快得多 我的理解是ArrayBuffer只是一个动态数组. 如何追加是分摊常数时间,但获得最后一个元素需要线性时间?
检查: http://www.scala-lang.org/docu/files/collections-api/collections_40.html

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

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

如何追加是分摊常数时间,但获得最后一个元素需要线性时间?

解决方法

尾巴不是最后一个元素,它是所有元素而是第一个.你想要最后一次.

Seq('a','b','c').head  // 'a'
Seq('a','c').tail  // Seq('b','c')
Seq('a','c').init  // Seq('a','b')
Seq('a','c').last  // 'c'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读