¿En qué se diferencian los ítems de Hamcrest, contiene y contieneInAnyOrder?

Hamcrest proporciona una serie de coincidencias para afirmar el contenido de una colección. Todos estos casos pasan:

Collection<String> c = ImmutableList.of("one", "two", "three");
assertThat(c, hasItems("one", "two", "three");
assertThat(c, contains("one", "two", "three");
assertThat(c, containsInAnyOrder("one", "two", "three");

Como hacerhasItems, contains&nbsp;ycontainsInAnyOrder&nbsp;¿diferir de?