Scala 集合深度解析
1. 集合遍历效率分析
在遍历平衡树的元素时,不同的遍历方法有着不同的时间复杂度。使用 foreach
遍历方法,访问所有元素的成本大约为 2N;而使用迭代器遍历,成本则上升到 N log(N)。例如,当树有一百万个元素时, foreach
大约需要两百万步,而迭代器则需要大约两千万步。因此, foreach
方法具有明显的优势。
2. Iterable 的子类别
在 Iterable
的继承层次结构中,有三个重要的特质: Seq
、 Set
和 Map
。这三个特质都实现了 PartialFunction
特质,不过实现方式各有不同。
- 序列(Seq) : apply
操作是位置索引,元素从 0 开始编号。例如, Seq(1, 2, 3)(1)
的结果为 2。
- 集合(Set) : apply
操作是成员测试。例如, Set('a', 'b', 'c')('b')
的结果为 true
,而 Set()('a')
的结果为 false
。
- 映射(Map) :