Rust By Example

Where vectors store values by an integer index, HashMaps store values by key.
HashMap keys can be booleans, integers, strings,
or any other type that implements the Eq and Hash traits.
More on this in the next section.

Like vectors, HashMaps are growable, but HashMaps can also shrink themselves
when they have excess space.
You can create a HashMap with a certain starting capacity using
HashMap::with_capacity(uint), or use HashMap::new() to get a HashMap
with a default initial capacity (recommended).