Coursera Scala 4-7:Lists


Coursera Scala 4-7:Lists

Lists

val nums = List(1,3,4)
val empty = List()
val fruit = List("apples","oranges")
val diag3 = List(List(1,0,0),List(0,1,0),List0,0,1))
  • immutable
  • List是递归的,arrays则不是

The List Type

和arrays一样,lists的元素必须是相同类型的。

Constructors of Lists

所有的Lists由:

  • 空的list Nil
  • 构造操作::,举个例子x :: xs会创建新的list,第一个元素为x,第二个元素为xs

Right Associativity

::是右结合性

"1"::("2"::("3"::Nil))            //> res1: List[String] = List(1, 2, 3)

scala中做了简化 所以 也可以写成

"1"::"2"::"3"::Nil

是等价的 ,::其实是方法名 相当于调用方法 可以写成.::

Nil.::(4).::(3).::(2).::(1)

Operations on Lists

  • head 取第一个元素
  • tail 返回不包含第一个元素的list
  • isEmpty

更多用于List的函数:

  • xs.length
  • xs.last 获得最后一个
  • xs.init 得到一个除了最后一个元素的列表
  • xs take n
  • xs drop n
  • xs(n)

Console代码

scala> def xs= List(0,1,2,3,4)  
xs: List[Int]  

scala> xs.length  
res0: Int = 5  

scala> xs.last  
res1: Int = 4  

scala> xs.init  
res2: List[Int] = List(0, 1, 2, 3)  

scala> xs take 1  
res3: List[Int] = List(0)  

scala> xs drop 1  
res4: List[Int] = List(1, 2, 3, 4)  

scala> xs(0)  
res5: Int = 0

创建新列表:
xs ++ ys 合并
xs.reverse 倒序
xs.updated(n,x)

查找元素:
xs indexOf x 不存在返回-1
xs contains x

List Patterns

Nil 表示空list
p :: ps 表示以p开头的元素 这个模式和[Head|Tail]一致
List(p1,...,p2) 也可以写成 p1::....::pn::Nil
当然也可以用_
例子:

   List(1,2,3) match {
      case List(1,_,3) => "yes"  //这样其实也是一种构造模式吧
   }                                              //> res2: String = yes

  
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值