scala 集合

来源:互联网 发布:哪种编程语言最火 编辑:程序博客网 时间:2024/06/13 04:06
// 集合
// 新的集合框架
// 集合主要分为可变集合和不可变集合
// 不可变集合一定不会被改变,是默认的选择 可变集合则有可能改变
// 留意以下的写法:


List(1, 2, 3) map (_ + 1)


// 集合(容器)有两个特性 就是遍历和迭代
// 遍历Traversable中, foreach 是抽象的,实现了"遍历"的容器,就可以继承许多其他的方法
// 迭代Iterable中许多方法都依赖于抽象iterator方法
// Iterable也是一种 Traversable , 因为实现了foreach


// grouped和sliding返回子集, 一个是分块的, 一个是滑动窗口的
scala> val xs = List(1, 2, 3, 4, 5)
xs: List[Int] = List(1, 2, 3, 4, 5)
scala> val git = xs grouped 3
git: Iterator[List[Int]] = non-empty iterator
scala> git.next()
res3: List[Int] = List(1, 2, 3)
scala> git.next()
res4: List[Int] = List(4, 5)
scala> val sit = xs sliding 3
sit: Iterator[List[Int]] = non-empty iterator
scala> sit.next()
res5: List[Int] = List(1, 2, 3)
scala> sit.next()
res6: List[Int] = List(2, 3, 4)
scala> sit.next()
res7: List[Int] = List(3, 4, 5)


// 序列
// 序列是一定长度的,其元素具有固定位置的可迭代集合
// 对于可变序列 提供update,可变序列和不可变序列都提供updated, 返回变过的副本
// 序列常用的有线性序列和索引序列, 二者接口相同但性能不同. vector在两种性能中达到平衡


// buffer 是一种常用的可变序列
//


import scala.collection.mutable.Buffer
scala.collection.mutable.Buffer[Int] = ArrayBuffer(3, 4, 5)
buf++=buf2
buf+=(2,2,2)
xs ++=: buf Prepends all elements in xs to buffer.
0 0
原创粉丝点击