【笔记】Rust的集合
前言
Rust的集合学习笔记
向量(Vector)
- 向量是存储相同类型元素的集合
- 向量存储在堆中,长度可变
- 使用索引查找数据
- 元素会添加到队尾
定义向量
通过静态方法定义向量
1 | let mut v = Vec::new(); |
通过宏的方式定义向量
- 定义向量时添加数据
1 | let mut v = vec![值, 值]; |
新增数据
1 | v.push(值); |
移除数据
- 移除并返回被移除的数据
1 | let item = v.remove(索引); |
获取指定索引的数据
1 | v[索引]; |
输出向量
1 | println("{:?}", v); |
获取长度
1 | v.len(); |
判断向量中是否包含指定值
- 返沪布尔值,true表示包含,false表示不包含
1 | let exist = v.contains(&值); |
遍历向量
1 | for item in v { |
哈希表(HashMap)
- 哈希表是存储键值对的集合,键不能重复
定义哈希表
通过静态方法定义哈希表
1 | use std::collections::HashMap; |
新增数据
1 | m.insert("键", 值); |
移除数据
- 移除并返回被移除的键值对
1 | let item = m.remove(&"键"); |
根据键获取指定值
1 | m.get(&"键"); |
输出哈希表
1 | println("{:?}", m); |
获取长度
1 | m.len(); |
通过match查找数据
1 | match m.get(&"键") { |
遍历哈希表
1 | for (k, v) in m.iter() { |
判断哈希表中是否包含指定键值对
- 返沪布尔值,true表示包含,false表示不包含
1 | let exist = m.contains_key(&"键"); |
哈希集合(HashSet)
- 相同数据的集合,并且没有重复的数据
定义哈希集合
通过静态方法定义哈希集合
1 | let mut s = HashSet::new(); |
新增数据
- 如果新增时已存在,则会新增失败
1 | s.insert(值); |
移除数据
- 移除并返回被移除的数据
- 即便移除不存在的数据也不会报错
1 | let item = s.remove(值); |
输出哈希集合
1 | println("{:?}", s); |
获取长度
1 | s.len(); |
通过match查找数据
1 | match s.get(&值) { |
遍历哈希集合
1 | for item in s.iter() { |
判断哈希集合中是否包含指定值
- 返沪布尔值,true表示包含,false表示不包含
1 | let exist = s.contains(&值); |