Ich möchte die Größe von List nach Element zählen. Zum BeispielZählgröße von Liste nach Element
List<String> source = Arrays.asList("USA", "USA", "Japan", "China", "China", "USA", "USA");
Ich mag Objekt (Karte) aus dieser Quelle, wie
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)
Jetzt komponierte ich unten, erstellen.
Map<String, Integer> result = new HashMap<>();
for (String str : source) {
Integer i = result.getOrDefault(str, Integer.valueOf(0));
result.put(str, i + 1);
}
Obwohl, das ist genug, um mein Ziel, ich denke, das ist nicht elegant-Code ist, und ich möchte ein elegant-Codierer sein. Ich benutze Java8. Gibt es eine elegante Lösung anstelle meiner Lösung?
Ich denke, diese Frage passt gut in http://codereview.stackexchange.com/ – NewUser
https://www.mkyong.com/java8/java-8-collectors-groupingby-and-mapping-example/ –