优雅地在Java集合中计算出现次数的方法

19 浏览
0 Comments

优雅地在Java集合中计算出现次数的方法

给定一组可能包含重复对象的集合,我想得到每个对象出现的次数。我通过初始化一个空的Map,然后遍历Collection并将对象映射到它的计数(每次映射已包含对象时增加计数)来实现这一点。

public Map countOccurrences(Collection list) {
    Map occurrenceMap = new HashMap();
    for (Object obj : list) {
        Integer numOccurrence = occurrenceMap.get(obj);
        if (numOccurrence == null) {
            //第一次计数
            occurrenceMap.put(obj, 1);
        } else {
            occurrenceMap.put(obj, numOccurrence++);
        }
    }
    return occurrenceMap;
}

这个代码看起来对于简单的计数逻辑来说太冗长了。是否有更优雅/更短的方法来实现这个功能?我可以接受完全不同的算法或者可以实现更短代码的Java语言特性。

0