码迷,mamicode.com
首页 > 其他好文 > 详细

Scala中List的实现内幕源码揭秘

时间:2015-08-11 09:52:39      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

学习了ScalaList的实现内幕源码揭秘,ListBuffer(链表缓存)相当于List的一个工具类,List本身继承ListBuffer,拥有ListBuffer中非私有的方法。对List的操作其实有部分是通过ListBuffer完成的。exportedLiftBufferflagdefault:false),当flagtrue时,表明Buffer已进行了toList操作,此时再进行连接等操作时,会有copy链表的动作发生,消耗内存,在实际编程中应谨慎。

例子如下:

private var start:List[A] = Nil

private var last0: ::[A]=_

private exported:Boolean = false

private var len = 0

override def toList:List[A]={

   exported = !start.isEmpty

   start

}

def +=(x:A): this.type = {

    if(exported)copy()

    .....

}

 

 王家林亲授《DT大数据梦工厂》大数据实战视频“Scala深入浅出实战经典”视频、音频和PPT下载!第83讲:Scala中List的实现内幕源码揭秘
百度云盘:技术分享http://pan.baidu.com/s/1sJWxo
360云盘:技术分享http://yunpan.cn/cdPEbk8TREFgt  访问密码 f2eb
技术分享

Scala中List的实现内幕源码揭秘

标签:

原文地址:http://www.cnblogs.com/tom-lee/p/4719953.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!