DevilKing's blog

冷灯看剑,剑上几分功名?炉香无需计苍生,纵一穿烟逝,万丈云埋,孤阳还照古陵

0%

scala学习第4天

使用列表

列表同数组的区别:

  • 列表为不可变的
  • 列表具有递归结构,但数组是连续的

所有列表可以通过Nil和::来构造出来,

连接列表 :::

length

last/init head/tail

reverse

归并排序

1
2
3
4
5
6
7
8
def merge(xs:List[T], ys:List[T]):List[T] =
(xs, ys) match {
case (Nil, _) => ys
case (_, Nil) => xs
case (x::xs1, y::ys1) =>
if(less(x,y)) x::merge(xs1, ys)
else y::merge(xs, ys1)
}

折叠列表,类似二叉树? /: :\

(z/:List(a, b, c))(op)等价于op(op(op(z,a),b),c)

列表排序 sort

集合类型

ListBuffer

ArrayBuffer

Queue

Stack

1
2
3
val counts = mutable.Map.empty[String, Int]

val counts = Map("i"->1)

有状态的对象

函数式(不可变)对象 有状态的对象

var变量x的getter方法命名为x, setter方法命名为x_=

1
var a:Float =_

=_ 初始化默认值,

类型参数化

更好地编写泛型类和trait