学习了Scala中List的Scala中List和ListBuffer设计实现思考,scala list 内部很多操作是listbuffer做的,因为改变元素,listbuffer非常高效,我们看见tl是var类型的 ,但是他属于scala包及子包,我们看上去是可变的,但是由于包 的限制我们看不到。
list列表 追加元素,如果tl前面没有 private[scala],可以改变除了第一个元素,其他所有元素构建的list,因为我们有同样的 tl,追加不同的元素,构造不同的列表,可以共享case class ::,操作尾部的列表 ,指向同样的数据结构。
例子如下
Final case class :: [B](private var hd:B,private[scala] val tl: List[B])extend list[B]{
Override def head :B=hd
Override def tail : List[B]=tl
Override def isEmpty: Boolean= fales}
王家林亲授《DT大数据梦工厂》大数据实战视频“Scala深入浅出实战经典”视频、音频和PPT下载!第84讲:Scala中List和ListBuffer设计实现思考
百度云盘:http://pan.baidu.com/s/1c0FGBzq
360云盘:http://yunpan.cn/cdRp6eTd95umJ 访问密码 45c3
腾讯微云:http://url.cn/cF431X