Collections - Trait Traversable - Scala Documentation

抽象方法: xs foreach f 对xs中的每一个元素执行函数f 加运算(Addition): xs ++ ys 生成一个由xs和ys中的元素组成容器。ys是一个TraversableOnce容器,即Taversable类型或迭代器。 Maps: xs map f 通过函数xs中的每一个元素调用函数f来生成一个容器。 xs flatMap f 通过对容器xs中的每一个元素调用作为容器的值函数f,在把所得的结果连接起来作为一个新的容器。 xs collect f 通过对每个xs中的符合定义的元素调用偏函数f,并把结果收集起来生成一个集合。 转换(Conversions): xs.toArray 把容器转换为一个数组 xs.toList 把容器转换为一个list xs.toIterable 把容器转换为一个迭代器。 xs.toSeq 把容器转换为一个序列 xs.toIndexedSeq 把容器转换为一个索引序列 xs.toStream 把容器转换为一个延迟计算的流。 xs.toSet 把容器转换为一个集合(Set)。 xs.toMap 把由键/值对组成的容器转换为一个映射表(map)。如果该容器并不是以键/值对作为元素的,那么调用这个操作将会导致一个静态类型的错误。 拷贝(Copying): xs copyToBuffer buf 把容器的所有元素拷贝到buf缓冲区。 xs copyToArray(arr, s, n) 拷贝最多n个元素到数组arr的坐标s处。参数s,n是可选项。 大小判断(Size info): xs.isEmpty 测试容器是否为空。 xs.nonEmpty 测试容器是否包含元素。 xs.size 计算容器内元素的个数。 xs.hasDefiniteSize 如果xs的大小是有限的,则为true。 元素检索(Element Retrieval): xs.head 返回容器内第一个元素(或其他元素,若当前的容器无序)。 xs.headOption xs选项值中的第一个元素,若xs为空则为None。 xs.last 返回容器的最后一个元素(或某个元素,如果当前的容器无序的话)。 xs.lastOption xs选项值中的最后一个元素,如果xs为空则为None。 xs find p 查找xs中满足p条件的元素,若存在则返回第一个元素;若不存在,则为空。 子容器(Subcollection): xs.tail 返回由除了xs.head外的其余部分。 xs.init 返回除xs.last外的其余部分。 xs slice (from, to) 返回由xs的一个片段索引中的元素组成的容器(从from到to,但不包括to)。 xs take n 由xs的第一个到第n个元素(或当xs无序时任意的n个元素)组成的容器。 xs drop n 由除了xs take n以外的元素组成的容器。 xs takeWhile p 容器xs中最长能够满足断言p的前缀。 xs dropWhile p 容器xs中除了xs takeWhile p以外的全部元素。 xs filter p 由xs中满足条件p的元素组成的容器。 xs withFilter p 这个容器是一个不太严格的过滤器。子容器调用map,flatMap,foreach和withFilter只适用于xs中那些的满足条件p的元素。 xs filterNot p 由xs中不满足条件p的元素组成的容器。 拆分(Subdivision): xs splitAt n 把xs从指定位置的拆分成两个容器(xs take n和xs drop n)。 xs span p 根据一个断言p将xs拆分为两个容器(xs takeWhile p, xs.dropWhile p)。 xs partition p 把xs分割为两个容器,符合断言p的元素赋给一个容器,其余的赋给另一个(xs filter p, xs.filterNot p)。 xs groupBy f 根据判别函数f把xs拆分一个到容器(collection)的map中。 条件元素(Element Conditions): xs forall p 返回一个布尔值表示用于表示断言p是否适用xs中的所有元素。 xs exists p 返回一个布尔值判断xs中是否有部分元素满足断言p。 xs count p 返回xs中符合断言p条件的元素个数。 折叠(Fold): (z /: xs)(op) 在xs中,对由z开始从左到右的连续元素应用二进制运算op。 (xs :\ z)(op) 在xs中,对由z开始从右到左的连续元素应用二进制运算op xs.foldLeft(z)(op) 与(z /: xs)(op)相同。 xs.foldRight(z)(op) 与 (xs :\ z)(op)相同。 xs reduceLeft op 非空容器xs中的连续元素从左至右调用二进制运算op。 xs reduceRight op 非空容器xs中的连续元素从右至左调用二进制运算op。 特殊折叠(Specific Fold): xs.sum 返回容器xs中数字元素的和。 xs.product xs返回容器xs中数字元素的积。 xs.min 容器xs中有序元素值中的最小值。 xs.max 容器xs中有序元素值中的最大值。 字符串(String): xs addString (b, start, sep, end) 把一个字符串加到StringBuilder对象b中,该字符串显示为将xs中所有元素用分隔符sep连接起来并封装在start和end之间。其中start,end和sep都是可选的。 xs mkString (start, sep, end) 把容器xs转换为一个字符串,该字符串显示为将xs中所有元素用分隔符sep连接起来并封装在start和end之间。其中start,end和sep都是可选的。 xs.stringPrefix 返回一个字符串,该字符串是以容器名开头的xs.toString。 视图(View): xs.view 通过容器xs生成一个视图。 xs view (from, to) 生成一个表示在指定索引范围内的xs元素的视图。

This is a companion discussion topic for the original entry at http://docs.scala-lang.org//zh-cn/overviews/collections/trait-traversable