public static <T> Map<T, Integer> countMap(Iterable<T> collection) {
		return IterUtil.countMap(null == collection ? null : collection.iterator());
	}
@Test
	public void countMapTest() {
		final ArrayList<String> list = CollUtil.newArrayList("a", "b", "c", "c", "a", "b", "d");
		final Map<String, Integer> countMap = CollUtil.countMap(list);

		assertEquals(Integer.valueOf(2), countMap.get("a"));
		assertEquals(Integer.valueOf(2), countMap.get("b"));
		assertEquals(Integer.valueOf(2), countMap.get("c"));
		assertEquals(Integer.valueOf(1), countMap.get("d"));
	}