Ich habe eine Liste von Parametern. Jeder Parameter hat einen ParameterTyp. Ich möchte nun eine Map haben, in der steht wie oft ein Typ in der Liste vorkommt.
Mein Ansatz mit der Stream-API:
Map<ParameterType, Integer> countTypes(final Collection<Parameter> parameters) {
return parameters.stream()
.collect(Collectors.toMap(
/* key */key -> key.getType(), // type = key
/* val */val -> Integer.valueOf((int) // count all parameters of same type
parameters.stream()
.filter(p -> p.getType() == val.getType())
.count())
));
}```
Funktioniert auch, sieht nur reichlich kompliziert aus. Dachte vielleicht kennt jemand einen Weg, dies irgendwie einfach zu lösen? Ideen dazu?
Parameter und ParameterType sehen in etwas so aus:
```class Parameter{
private ParameterType type;
ParameterType getType(){return type;}
}
enum ParameterType { A,B,C,D,E }