给定一组可能包含重复对象的集合,我想得到每个对象出现的次数。我通过初始化一个空的Map,然后遍历Collection并将对象映射到它的计数(每次映射已包含对象时增加计数)来实现这一点。
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语言特性。
用户名或电子邮箱地址
密码