Scala 集合操作全解析
1. 理解集合性能
在性能至关重要的应用中选择集合时,需要为算法选择合适的集合。可以通过理解集合的基本结构来推断其性能。例如, List 是单链表,没有索引,访问 List 的第一百万个元素(如 list(1000000) )会比访问 Array 的同一位置元素慢,因为 Array 是有索引的,而访问 List 中的元素需要遍历整个列表。
也可以查看相关表格。在查看性能表格之前,先了解性能特征键,如下表所示:
| Key | Description |
| — | — |
| C | 操作需要(快速)恒定时间。 |
| eC | 操作实际上需要恒定时间,但这可能取决于一些假设,例如向量的最大长度或哈希键的分布。 |
| aC | 操作的摊销时间为恒定时间。操作的某些调用可能需要更长时间,但如果执行许多操作,平均每个操作只需要恒定时间。 |
| Log | 操作所需时间与集合大小的对数成正比。 |
| L | 操作是线性的,因此时间与集合大小成正比。 |
| - | 不支持该操作。 |
1.1 顺序集合的性能特征
以下是不可变和可变顺序集合操作的性能特征:
| | head | tail | apply | update | prepend | append | insert |
| — | — | — | — | — | — | — | — |
超级会员免费看
订阅专栏 解锁全文
91

被折叠的 条评论
为什么被折叠?



