【发布时间】:2017-04-17 02:09:03
【问题描述】:
我想按元素计算 List 的大小。 例如,
List<String> source = Arrays.asList("USA", "USA", "Japan", "China", "China", "USA", "USA");
我想从这个来源创建对象(地图),例如,
int usa_count = result.get("USA").intValue(); // == 4
int javan_count = result.get("Japan").intValue(); // == 1
int china_count = result.get("China").intValue(); // == 2
int uk_count = result.get("UK").intValue(); // == 0 or NPE (both OK)
现在,我在下面作曲。
Map<String, Integer> result = new HashMap<>();
for (String str : source) {
Integer i = result.getOrDefault(str, Integer.valueOf(0));
result.put(str, i + 1);
}
虽然,这足以达到我的目的,但我认为这不是优雅的代码,我想成为一名优雅的编码员。 我使用Java8。 有什么优雅的解决方案可以代替我的解决方案吗?
【问题讨论】:
标签: java collections