第83讲:Scala中List的实现内幕源码揭秘学习笔记

83讲:ScalaList的实现内幕源码揭秘学习笔记

本讲主要讲解List实现的具体内部的关键源码

上讲讲了listbufferlist的高效遍历,解决了堆栈溢出的问题和使用遍历时的效率问题

scala中的list在后来的版本中都采用了这种方法。

 

toList不会低效,ListBuffer最后 一个元素是List的最后一个元素,

 

/*Converts this buffer to a list.Takes constant time. The buffer is

copied lazily, the first time it is mutated.*/

override def toList: List[A] = {

  exported = !start.isEmppty

  start    //只是返回start,基本不耗时间。start指向元素列表

}

 

//Listd take(n:Int)源码:

override def take(n:Int):List[A]={

val b = new ListBuffer[A]

var i= 0

var these = this

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值