java处理集合工具
public static <K, V> Map<K, V> parseListToMap(Collection<V> list, Function<V, K> mapper) { if (list == null || list.size() == 0) { return null; } Map<K, V> map = new HashMap<>(); for (V v : list) { map.put(mapper.apply(v), v); } return map; } public static <K, V> Map<K, List<V>> parseListToListMap(List<V> list, Function<V, K> mapper) { if (list == null || list.size() == 0) { return null; } Map<K, List<V>> map = new HashMap<>(); for (V v : list) { if (map.containsKey(mapper.apply(v))) { map.get(mapper.apply(v)).add(v); } else { List<V> values = new ArrayList<>(); values.add(v); map.put(mapper.apply(v), values); } } return map; } public static <K, V> Map<K, Integer> frequencyOfListElements(Collection<V> list, Function<V, K> mapper) { if (null == list || list.size() == 0) { return null; } Map<K, Integer> map = new HashMap<>(); for (V v : list) { Integer count = map.get(mapper.apply(v)); map.put(mapper.apply(v), (null == count) ? 1 : (count + 1)); } return map; }