我想按元素计数列表的大小。现在 例如,按元素计算列表的大小
List<String> source = Arrays.asList("USA", "USA", "Japan", "China", "China", "USA", "USA");
我想创建从该源对象(MAP),如,
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。 有没有优雅的解决方案,而不是我的解决方案?
我认为这个问题在合身http://codereview.stackexchange.com/ – NewUser
https://www.mkyong.com/java8/java-8-collectors-groupingby-and-mapping-example/ –