From 7c1ed4cc255fb1895012401c313d455e1d5a2592 Mon Sep 17 00:00:00 2001
From: luoxiang <2806718453@qq.com>
Date: Tue, 7 May 2019 23:18:15 +0800
Subject: [PATCH] =?UTF-8?q?scala=E9=9B=86=E5=90=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
notes/Scala其他集合类型.md | 11 --
notes/Scala集合类型.md | 193 ++++++++++++++++++++++++++++++
pictures/scala-collection-imm.png | Bin 0 -> 101956 bytes
pictures/scala-collection-m.png | Bin 0 -> 58071 bytes
pictures/scala-collection.png | Bin 0 -> 26942 bytes
5 files changed, 193 insertions(+), 11 deletions(-)
delete mode 100644 notes/Scala其他集合类型.md
create mode 100644 notes/Scala集合类型.md
create mode 100644 pictures/scala-collection-imm.png
create mode 100644 pictures/scala-collection-m.png
create mode 100644 pictures/scala-collection.png
diff --git a/notes/Scala其他集合类型.md b/notes/Scala其他集合类型.md
deleted file mode 100644
index cb3b361..0000000
--- a/notes/Scala其他集合类型.md
+++ /dev/null
@@ -1,11 +0,0 @@
-其他集合类型
-
-一、集合综述
-
-在前面的文章中,主要介绍了四种常用的集合(List、Set、Map、Tuple),实际上Scala中还有各种集合类型。Scala中集合分为可变的和不可变的集合。
-
-+ 可变集合: 可以被修改。即可以更改,添加,删除集合中的元素;
-
-+ 不可变集合类:不能被修改。虽然可以对不可变集合执行添加,移除或更新操作,但是这些操作都会返回一个新的集合,而不是修改原来的集合。
-
-二、集合包
\ No newline at end of file
diff --git a/notes/Scala集合类型.md b/notes/Scala集合类型.md
new file mode 100644
index 0000000..2eb0bff
--- /dev/null
+++ b/notes/Scala集合类型.md
@@ -0,0 +1,193 @@
+# 集合
+
+
+一、集合简介
+二、集合结构
+ 3.1 scala.collection
+ 3.2 scala.collection.mutable
+ 3.2 scala.collection.immutable
+三、Trait Traversable
+四、Trait Iterable
+五、修改集合
+
+
+## 一、集合简介
+
+Scala中拥有多种集合类型,主要分为可变的和不可变的集合两大类:
+
++ 可变集合: 可以被修改。即可以更改,添加,删除集合中的元素;
+
++ 不可变集合类:不能被修改。虽然可以对不可变集合执行添加,移除或更新操作,但是这些操作都会返回一个新的集合,而不是修改原来的集合。
+
+## 二、集合结构
+
+scala所有的集合类主要位于`scala.collection` 、`scala.collection.mutable`、`scala.collection.immutable`、`scala.collection.generic`包中 ,大部分集合类存在三类变体,分别位于`scala.collection`, `scala.collection.immutable`, `scala.collection.mutable`包。
+
+- `scala.collection.immutable`包是中的集合是不可变的;
+- `scala.collection.mutable`包中的集合是可变的;
+- `scala.collection`包中的集合,既可以是可变的,也可以是不可变的。
+
+```scala
+val sortSet = scala.collection.SortedSet(1, 2, 3, 4, 5)
+val mutableSet = collection.mutable.SortedSet(1, 2, 3, 4, 5)
+val immutableSet = collection.immutable.SortedSet(1, 2, 3, 4, 5)
+```
+
+如果你仅写了`Set` 而没有任何加前缀也没有进行任何`import`,则Scala默认采用不可变集合类。
+
+```scala
+scala> Set(1,2,3,4,5)
+res0: scala.collection.immutable.Set[Int] = Set(5, 1, 2, 3, 4)
+```
+
+### 3.1 scala.collection
+
+scala.collection包中所有集合如下图:
+
+
+
+### 3.2 scala.collection.mutable
+
+scala.collection.mutable包中所有集合如下图:
+
+
+
+### 3.2 scala.collection.immutable
+
+scala.collection.immutable包中所有集合如下图:
+
+
+
+## 三、Trait Traversable
+
+Scala中所有集合的顶层实现是`Traversable` 。它唯一的抽象方法是`foreach`:
+
+```scala
+def foreach[U](f: Elem => U)
+```
+
+实现Traversable的集合类只需要定义这个方法,所有其他方法都可以从Traversable继承。Traversable中定义了很多方法,如下:
+
+| 方法 | 描述 |
+| ----------------------------------- | ------------------------------------------------------------ |
+| **Abstract Method:** | |
+| `xs foreach f` | Executes function `f` for every element of `xs`. |
+| **Addition:** | |
+| `xs ++ ys` | A collection consisting of the elements of both `xs` and `ys`. `ys` is a [TraversableOnce](http://www.scala-lang.org/api/current/scala/collection/TraversableOnce.html) collection, i.e., either a [Traversable](http://www.scala-lang.org/api/current/scala/collection/Traversable.html) or an [Iterator](http://www.scala-lang.org/api/current/scala/collection/Iterator.html). |
+| **Maps:** | |
+| `xs map f` | The collection obtained from applying the function f to every element in `xs`. |
+| `xs flatMap f` | The collection obtained from applying the collection-valued function `f` to every element in `xs` and concatenating the results. |
+| `xs collect f` | The collection obtained from applying the partial function `f` to every element in `xs` for which it is defined and collecting the results. |
+| **Conversions:** | |
+| `xs.toArray` | Converts the collection to an array. |
+| `xs.toList` | Converts the collection to a list. |
+| `xs.toIterable` | Converts the collection to an iterable. |
+| `xs.toSeq` | Converts the collection to a sequence. |
+| `xs.toIndexedSeq` | Converts the collection to an indexed sequence. |
+| `xs.toStream` | Converts the collection to a lazily computed stream. |
+| `xs.toSet` | Converts the collection to a set. |
+| `xs.toMap` | Converts the collection of key/value pairs to a map. If the collection does not have pairs as elements, calling this operation results in a static type error. |
+| **Copying:** | |
+| `xs copyToBuffer buf` | Copies all elements of the collection to buffer `buf`. |
+| `xs copyToArray(arr, s, n)` | Copies at most `n` elements of the collection to array `arr` starting at index `s`. The last two arguments are optional. |
+| **Size info:** | |
+| `xs.isEmpty` | Tests whether the collection is empty. |
+| `xs.nonEmpty` | Tests whether the collection contains elements. |
+| `xs.size` | The number of elements in the collection. |
+| `xs.hasDefiniteSize` | True if `xs` is known to have finite size. |
+| **Element Retrieval:** | |
+| `xs.head` | The first element of the collection (or, some element, if no order is defined). |
+| `xs.headOption` | The first element of `xs` in an option value, or None if `xs` is empty. |
+| `xs.last` | The last element of the collection (or, some element, if no order is defined). |
+| `xs.lastOption` | The last element of `xs` in an option value, or None if `xs` is empty. |
+| `xs find p` | An option containing the first element in `xs` that satisfies `p`, or `None` if no element qualifies. |
+| **Subcollections:** | |
+| `xs.tail` | The rest of the collection except `xs.head`. |
+| `xs.init` | The rest of the collection except `xs.last`. |
+| `xs slice (from, to)` | A collection consisting of elements in some index range of `xs` (from `from` up to, and excluding `to`). |
+| `xs take n` | A collection consisting of the first `n` elements of `xs` (or, some arbitrary `n` elements, if no order is defined). |
+| `xs drop n` | The rest of the collection except `xs take n`. |
+| `xs takeWhile p` | The longest prefix of elements in the collection that all satisfy `p`. |
+| `xs dropWhile p` | The collection without the longest prefix of elements that all satisfy `p`. |
+| `xs filter p` | The collection consisting of those elements of xs that satisfy the predicate `p`. |
+| `xs withFilter p` | A non-strict filter of this collection. Subsequent calls to `map`, `flatMap`, `foreach`, and `withFilter` will only apply to those elements of `xs` for which the condition `p` is true. |
+| `xs filterNot p` | The collection consisting of those elements of `xs` that do not satisfy the predicate `p`. |
+| **Subdivisions:** | |
+| `xs splitAt n` | Split `xs` at a position, giving the pair of collections `(xs take n, xs drop n)`. |
+| `xs span p` | Split `xs` according to a predicate, giving the pair of collections `(xs takeWhile p, xs.dropWhile p)`. |
+| `xs partition p` | Split `xs` into a pair of collections; one with elements that satisfy the predicate `p`, the other with elements that do not, giving the pair of collections `(xs filter p, xs.filterNot p)` |
+| `xs groupBy f` | Partition `xs` into a map of collections according to a discriminator function `f`. |
+| **Element Conditions:** | |
+| `xs forall p` | A boolean indicating whether the predicate `p` holds for all elements of `xs`. |
+| `xs exists p` | A boolean indicating whether the predicate `p` holds for some element in `xs`. |
+| `xs count p` | The number of elements in `xs` that satisfy the predicate `p`. |
+| **Folds:** | |
+| `(z /: xs)(op)` | Apply binary operation `op` between successive elements of `xs`, going left to right and starting with `z`. |
+| `(xs :\ z)(op)` | Apply binary operation `op` between successive elements of `xs`, going right to left and starting with `z`. |
+| `xs.foldLeft(z)(op)` | Same as `(z /: xs)(op)`. |
+| `xs.foldRight(z)(op)` | Same as `(xs :\ z)(op)`. |
+| `xs reduceLeft op` | Apply binary operation `op` between successive elements of non-empty collection `xs`, going left to right. |
+| `xs reduceRight op` | Apply binary operation `op` between successive elements of non-empty collection `xs`, going right to left. |
+| **Specific Folds:** | |
+| `xs.sum` | The sum of the numeric element values of collection `xs`. |
+| `xs.product` | The product of the numeric element values of collection `xs`. |
+| `xs.min` | The minimum of the ordered element values of collection `xs`. |
+| `xs.max` | The maximum of the ordered element values of collection `xs`. |
+| **Strings:** | |
+| `xs addString (b, start, sep, end)` | Adds a string to `StringBuilder` `b` that shows all elements of `xs` between separators `sep` enclosed in strings `start` and `end`. `start`, `sep`, `end` are all optional. |
+| `xs mkString (start, sep, end)` | Converts the collection to a string that shows all elements of `xs` between separators `sep` enclosed in strings `start` and `end`. `start`, `sep`, `end` are all optional. |
+| `xs.stringPrefix` | The collection name at the beginning of the string returned from `xs.toString`. |
+| **Views:** | |
+| `xs.view` | Produces a view over `xs`. |
+| `xs view (from, to)` | Produces a view that represents the elements in some index range of `xs`. |
+
+
+
+## 四、Trait Iterable
+
+Iterable拓展了Traversable,并定义了一些额外的方法,Scala中所有的集合都直接或者间接实现了Iterable。
+
+| 方法 | 描述 |
+| ---------------------- | ------------------------------------------------------------ |
+| **Abstract Method:** | |
+| `xs.iterator` | An `iterator` that yields every element in `xs`, in the same order as `foreach` traverses elements. |
+| **Other Iterators:** | |
+| `xs grouped size` | An iterator that yields fixed-sized “chunks” of this collection. |
+| `xs sliding size` | An iterator that yields a sliding fixed-sized window of elements in this collection. |
+| **Subcollections:** | |
+| `xs takeRight n` | A collection consisting of the last `n` elements of `xs` (or, some arbitrary `n` elements, if no order is defined). |
+| `xs dropRight n` | The rest of the collection except `xs takeRight n`. |
+| **Zippers:** | |
+| `xs zip ys` | An iterable of pairs of corresponding elements from `xs` and `ys`. |
+| `xs zipAll (ys, x, y)` | An iterable of pairs of corresponding elements from `xs` and `ys`, where the shorter sequence is extended to match the longer one by appending elements `x` or `y`. |
+| `xs.zipWithIndex` | An iterable of pairs of elements from `xs` with their indices. |
+| **Comparison:** | |
+| `xs sameElements ys` | A test whether `xs` and `ys` contain the same elements in the same order |
+
+## 五、修改集合
+
+当你想对集合添加或者删除元素,需要根据不同的集合类型选择不同的操作符号。
+
+| 操作符 | 描述 | 集合类型 |
+| ------------------------------------------------------------ | ------------------------------------------------- | --------------------- |
+| coll(k) 即coll.apply(k) | 获取指定位置的元素 | Seq, Map |
+| coll :+ elem elem +: coll | 向集合末尾或者集合头增加元素 | Seq |
+| coll + elem coll + (e1, e2, ...) | 追加元素 | Seq, Map |
+| coll - elem coll - (e1, e2, ...) | 删除元素 | Set, Map, ArrayBuffer |
+| coll ++ coll2 coll2 ++: coll | 合并集合 | Iterable |
+| coll -- coll2 | 移除coll中包含的coll2中的元素 | Set, Map, ArrayBuffer |
+| elem :: lst lst2 :: lst | 把指定列表(lst2)或者元素(elem)添加到列表(lst)头部 | List |
+| list ::: list2 | 合并List | List |
+| set \| set2 set & set2 set &~ set2 | 并集、交集、差集 | Set |
+| coll += elem coll += (e1, e2, ...) coll ++= coll2 coll -= elem coll -= (e1, e2, ...) coll --= coll2 | 添加或者删除元素,并将修改后的结果赋值给集合本身 | 可变集合 |
+| elem +=: coll coll2 ++=: coll | 在集合头部追加元素或集合 | ArrayBuffer |
+
+
+
+## 参考资料
+
+1. Martin Odersky . Scala编程(第3版)[M] . 电子工业出版社 . 2018-1-1
+2. 凯.S.霍斯特曼 . 快学Scala(第2版)[M] . 电子工业出版社 . 2017-7
+3. https://docs.scala-lang.org/overviews/collections/overview.html
+4. https://docs.scala-lang.org/overviews/collections/trait-traversable.html
+5. https://docs.scala-lang.org/overviews/collections/trait-iterable.html
\ No newline at end of file
diff --git a/pictures/scala-collection-imm.png b/pictures/scala-collection-imm.png
new file mode 100644
index 0000000000000000000000000000000000000000..7daba6083aa45b971ae6ecaa772a9d8baa409783
GIT binary patch
literal 101956
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