title: How do Hamcrest's hasItems, contains and containsInAnyOrder differ?
body: <p>Hamcrest provides a number of matchers for asserting the contents of a collection. All of these cases pass:</p>
  
  <pre><code>Collection&lt;String&gt; c = ImmutableList.of("one", "two", "three");
  assertThat(c, hasItems("one", "two", "three");
  assertThat(c, contains("one", "two", "three");
  assertThat(c, containsInAnyOrder("one", "two", "three");
  </code></pre>
  
  <p>How do <code>hasItems</code>, <code>contains</code> and <code>containsInAnyOrder</code> differ?</p>