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

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

时间:2015-08-13 01:08:57      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

今天我们来学习一下scala的List的方法的内部源码的一些知识。

首先,take方法。take方法就是取列表的从第一个元素开始的前N个元素。如list.take(3),就是取list的前3个元素,返回的就是list的前3个元素组成的列表。它的原理就是,依次取list的head,将head添加到一个临时的listBuffer,然后将取list的tail组成的列表的head。。。。直到取够个数为止。最后,将临时的listBuffer通过toList方法转换成List。

 

顺便看看toList方法。toList方法就是将ListBuffer转换成List。这种转换不会将listBuffer中的所有元素全部copy一遍,只是操作最后一个元素。而且这种操作不会很花费时间,是非常极速的事情。

 

最后我们来看看listBuffer的 += 方法。+=方法就是将列表进行元素的追加。所以我们在tolist之后,就不要再进行追加操作了,这会对列表进行拷贝,会耗费时间和资源。

 

分享下更多的scala资源吧:

 

百度云盘:http://pan.baidu.com/s/1gd7133t

 

微云云盘:http://share.weiyun.com/047efd6cc76d6c0cb21605cfaa88c416

 

360云盘: http://yunpan.cn/cQN9gvcKXe26M (提取码:13cd)

 

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark

 

关注微信账号,获取更多关于scala学习内容

 

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

标签:

原文地址:http://www.cnblogs.com/qingyuesama/p/4725909.html

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