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;
    }

 

posted @ 2022-09-16 13:40  sowler  阅读(29)  评论(0)    收藏  举报