【笔记】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
2
3
for item in v {
...
}

哈希表(HashMap)

  • 哈希表是存储键值对的集合,键不能重复

定义哈希表

通过静态方法定义哈希表

1
2
3
use std::collections::HashMap;

let mut m = HashMap::new();

新增数据

1
m.insert("键", 值);

移除数据

  • 移除并返回被移除的键值对
1
let item = m.remove(&"键");

根据键获取指定值

1
m.get(&"键");

输出哈希表

1
println("{:?}", m);

获取长度

1
m.len();

通过match查找数据

1
2
3
4
5
6
7
8
match m.get(&"键") {
Some(m) => {
存在指定键值对时执行的语句,这个键值对是m
}
None => {
不存在指定键值对时执行的语句
}
}

遍历哈希表

1
2
3
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
2
3
4
5
6
7
8
match s.get(&值) {
Some(item) => {
存在指定值对时执行的语句,这个值是item
}
None => {
不存在指定值对时执行的语句
}
}

遍历哈希集合

1
2
3
for item in s.iter() {
...
}

判断哈希集合中是否包含指定值

  • 返沪布尔值,true表示包含,false表示不包含
1
let exist = s.contains(&值);

完成

参考文献

哔哩哔哩——面向加薪学习