第80讲:List的泛型分析以及::类和Nil对象学习笔记
来源:互联网 发布:大张伟 天天向上 知乎 编辑:程序博客网 时间:2024/06/06 06:43
第80讲:List的泛型分析以及::类和Nil对象学习笔记
接下来几讲回到LIST,进一步深入研究list,对巩固List的知识非常重要。
import scala.collection.AbstractSeq
import scala.collection.LinearSeq
import scala.collection.generic.GenericTraversableTemplate
import scala.collection.LinearSeqOptimized
import scala.collection.generic.GenericCompanion
import scala.collection.immutable._
sealed abstract class List[+A] extends AbstractSeq[A]
//[+A]说明是协变的,
with LinearSeq[A]
with Product
with GenericTraversableTemplate[A,List]
with LinearSeqOptimized[A,List[A]] {
override def companion: GenericCompanion[List] = List
import scala.collection.{Iterable,Traversable,Seq,IndexedSeq}
def isEmpty: Boolean
def head: A
//返回list的第一个元素
def tail: List[A]
//返回list中除第一个元素以外的元素
def ::[B >: A] (x: B): List[B]= new scala.collection.immutable.::(x.this)
}
::类和Nil都是List的子类:
::表示一个非空列表,Nil与之相反,表示空列表。
case object Nil extends List[Nothing]{
override def isEmpty = true
override def head : Nothing = throw new NoSuchElementException("tail of empty list")
override def tail : List[Nothing] = throw new UnsupportedOperationException("tail of empty list")
override def equals(that Any) = that match{
case that1 : scala.collection.GenSeq[_] => that1.isEmpty
case _ => false
}
}
List[Nothing]表示一个空的List,所以Nil的isEmpty方法返回true,head和tail方法抛出异常,
以上内容是从王家林老师DT大数据课程第80讲的学习笔记。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
scala第80讲视频观看链接:
http://yun.baidu.com/s/1gdnjT3l
我的百度网盘共享的DT大数据梦工厂王家林老师第1-81讲的视频内容:http://pan.baidu.com/s/1qWK9CMo
今日【DT大数据梦工厂视频】《第80讲:scala中List的泛型分析以及::类和Nil对象》
51CTO视频:http://edu.51cto.com/lesson/id-71116.html
优酷视频:http://v.youku.com/v_show/id_XMTMwMzk5NTM0MA==.html?from=y1.7-1.2
腾讯视频:http://v.qq.com/boke/page/s/0/s/s0161b7yg4s.html
56网视频:http://www.56.com/u41/v_MTM4MzA2MTk4.html
- 第80讲:List的泛型分析以及::类和Nil对象学习笔记
- Scala 深入浅出实战经典 第80讲:scala中List的泛型分析以及::类和Nil对象
- Scala深入浅出进阶经典 第80讲:List的泛型分析以及::类和Nil对象
- scala List的泛型分析以及::类和Nil对象
- IOS中类和对象以及nil/Nil/NULL的区别
- IOS中类和对象以及nil/Nil/NULL的区别
- iOS中类和对象以及nil/Nil/NULL的区别
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第30讲_类和对象细节_创建对象的几种方式_js对象内存分析_学习笔记_源代码图解_PPT文档整理
- 第84讲:Scala中List和ListBuffer设计实现思考学习笔记
- 第83讲:Scala中List的实现内幕源码揭秘学习笔记
- 第61+62+63讲 类和对象基本概念 以及其在内存中存在的形式
- 第119讲:HDFS的配置以及安全高效的HDFS配置最佳实践学习笔记
- 第102讲:通过案例解析Akka中的Actor运行机制以及Actor的生命周期学习笔记
- 第5讲 类和对象的高级应用-常对象和对象常成员
- nil、NIL以及null间的联系和区别
- 第82讲:Scala中List的ListBuffer是如何实现高效的遍历计算的?学习笔记
- IOS中类和对象还有,nil/Nil/NULL的区别
- IOS中类和对象还有,nil/Nil/NULL的区别
- ORACLE中让某一列输出的结果的货币单位为$或者¥
- 带有输入参数的存储过程
- Trapping Rain Water
- 【Java多线程】之一:Thread Simple Example
- 【003.Matlab基础 数组】
- 第80讲:List的泛型分析以及::类和Nil对象学习笔记
- 左移 & 右移
- android的Http协议学习与应用——连接一个网页
- 自己封装的XMLHttpRequest2 ajax
- 14、 C语言和设计模式(状态模式)
- Hibernate结合C3P0
- 自定义Spinner
- 【实例】【html5】在canvas获取鼠标的坐标
- 使用LFM(Latent factor model)隐语义模型进行Top-N推荐