# 集合类型 在Rust标准库中有这样一批原住民,它们天生贵族,当你看到的一瞬间,就能爱上它们, 上面是我瞎编的,其实主要是离了它们不行,不信等会我介绍后,你放个狠话,非它们不用试试? 集合在Rust中是一类比较特殊的类型,因为Rust中大多数数据类型都只能代表一个特定的值,但是它们可以代表一堆。而且与语言级别的数组、字符串类型不同,标准库里的这些家伙是分配在堆上,因此都可以进行动态的增加和减少。 瞧,第一个集合排着整体的队列登场了,它里面的每个元素都雄赳赳气昂昂跟在另外一个元素后面,大小、宽度、高度竟然全部一致,真是令人惊叹。 它就是`Vector`类型,允许你创建一个动态数组,它里面的元素是一个紧挨着另一个排列的。 紧接着,第二个集合在全场的嘘声和羡慕眼光中闪亮登场,只见里面的元素排成一对一对的,彼此都手牵着手,非对方莫属,这种情深深雨蒙蒙的样子真是...挺欠扁的。 它就是`HashMap`类型,该类型允许你在里面存储`KV`对,每一个`K`都有唯一的`V`与之配对。 最后,请用热恋的掌声迎接我们的`String`集合,哦,抱歉,`String`集合天生低调,见不得前两个那样,因此被气走了,你可以去[这里](../compound-type/string-slice)找它. 言归正传,本章所讲的`Vector`、`HashMap`再加上之前的`String`类型,是标准库中最最常用的集合类型,可以说,几乎任何一段代码中都可以找到它们的身影,那么先来看看`Vector`.