title: Use Index trait with HashMap in Rust
body: <p>In order to test the <a href="https://doc.rust-lang.org/std/ops/trait.Index.html" rel="nofollow noreferrer"><code>Index</code></a> trait, I coded a histogram. </p>
  
  
  
  <pre><code>use std::collections::HashMap;
  
  fn main() {
      let mut histogram: HashMap&lt;char, u32&gt; = HashMap::new();
      let chars: Vec&lt;_&gt; = "Lorem ipsum dolor sit amet"
          .to_lowercase()
          .chars()
          .collect();
  
      for c in chars {
          histogram[c] += 1;
      }
  
      println!("{:?}", histogram);
  }
  </code></pre>
  
  <p><sup>Test code <a href="https://play.rust-lang.org/?code=use%20std%3A%3Acollections%3A%3AHashMap%3B%0A%0Afn%20main()%20%7B%0A%20%20%20%20let%20mut%20histogram%3A%20HashMap%3Cchar%2C%20u32%3E%20%3D%20HashMap%3A%3Anew()%3B%0A%20%20%20%20let%20chars%3A%20Vec%3C_%3E%20%3D%20%22Lorem%20ipsum%20dolor%20sit%20amet%22%0A%20%20%20%20%20%20%20%20.to_lowercase()%0A%20%20%20%20%20%20%20%20.chars()%0A%20%20%20%20%20%20%20%20.collect()%3B%0A%0A%20%20%20%20for%20c%20in%20chars%20%7B%0A%20%20%20%20%20%20%20%20histogram%5Bc%5D%20%2B%3D%201%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20println!(%22%7B%3A%3F%7D%22%2C%20histogram)%3B%0A%7D%0A&amp;version=stable&amp;backtrace=0" rel="nofollow noreferrer">here</a>.</sup></p>
  
  <p>But I get following type error <code>expected &amp;char, found char</code>. If I use <code>histogram[&amp;c] += 1;</code> instead, I get <code>cannot borrow as mutable</code>.</p>
  
  <p>What am I doing wrong? How can I fix this example?</p>