计算 java 集合中出现的次数的优雅方法
2022-09-01 09:30:25
给定一个具有可能重复的对象集合,我希望最终获得每个对象的出现次数。我通过初始化一个空的,然后循环访问对象并将其映射到其计数(每次映射已经包含对象时递增计数)来做到这一点。Map
Collection
public Map<Object, Integer> countOccurrences(Collection<Object> list) {
Map<Object, Integer> occurrenceMap = new HashMap<Object, Integer>();
for (Object obj : list) {
Integer numOccurrence = occurrenceMap.get(obj);
if (numOccurrence == null) {
//first count
occurrenceMap.put(obj, 1);
} else {
occurrenceMap.put(obj, numOccurrence++);
}
}
return occurrenceMap;
}
这对于计算发生次数的简单逻辑来说看起来太冗长了。有没有更优雅/更短的方法可以做到这一点?我对一种完全不同的算法或Java语言特定的功能持开放态度,这些功能允许更短的代码。