22、Scala 集合操作全解析

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 |
| — | — | — | — | — | — | — | — |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值