您的位置:首页 > Web前端

第84讲:Scala中List和ListBuffer设计实现思考学习笔记

2015-08-12 22:38 537 查看
第84讲:Scala中List和ListBuffer设计实现思考学习笔记

本讲对List ListBuffer的设计进行探讨和思考

List内部的操作很多是ListBuffer来做的。

因为改变元素时ListBuffer非常高效

@SerialVersionUID(0L - ....)

final case class ::[B](private var hd: B,private[scala] var tl: List[B] extends List[B]){

//如果没有private就会给共享数据带来很大麻烦。因为可以有同样的tail,却可以构造不同的列表。

override def head : B = hd

override def tail : List[B] = tl

override def isEmpty: Bollean = false

//scala中的List和ListBuffer与java中的String/StringBuffer类似。

//String每次改变元素时会产生一个新的String。

final class ListBuffer[A]

extends AbstractBuffer[A]

with Buffer[A]

with GenericTraversableTemplate[A,ListBuffer]

with BufferLike[A, ListBuffer[A]]

with Buffer[A, ListBuffer[A]]

with SeqForwarder[A]

with Serializable

{

override def companion: GenericCompanion[ListBuffer] = ListBuffer

import scala.collection.Traversable

private var start: List[A] = Nil

private var last0: ::[A] = _

private var exported: Boolean = false

private var len = 0

}

外在的函数式,内在的可变性是非常好的组合,

ListBuffer中的toList的方式可以非常化地变成List。

以上内容是从王家林老师DT大数据课程第83讲的学习笔记。

DT大数据微信公众账号:DT_Spark

王家林老师QQ:1740415547

王家林老师微信号:18610086859

scala第83讲视频观看链接:
http://yun.baidu.com/s/1sJWxo
我的百度网盘共享的DT大数据梦工厂王家林老师第1-85讲的视频内容:http://pan.baidu.com/s/1qWK9CMo

今日【DT大数据梦工厂视频】《第84讲:Scala中List和ListBuffer设计实现思考》

51CTO视频:http://edu.51cto.com/lesson/id-71363.html

土豆视频:http://www.tudou.com/programs/view/9vOkwWDGF6M/

(DT大数据梦工厂1至84讲scala的所有视频、PPT和代码在百度云盘的链接:http://url.cn/fSFPjS)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: