Comment utiliser Java 8 Collectionneurs groupingBy pour obtenir une Carte avec une Carte de la collection?
Imaginer ces classes
class Subject {
private int id;
private Type type;
private String origin;
private String name;
Subject(int id, Type type, String origin, String name) {
this.id = id;
this.type = type;
this.origin = origin;
this.name = name;
}
//Getters and Setters
}
enum Type {
TYPE1,
TYPE2
}
J'ai une liste de ceux qui sont Assujettis classes
List<Subject> subjects = Arrays.asList(
new Subject(1, Type.TYPE1, "South", "Oscar"),
new Subject(2, Type.TYPE2, "South", "Robert"),
new Subject(3, Type.TYPE2, "North", "Dan"),
new Subject(4, Type.TYPE2, "South", "Gary"));
Je voudrais obtenir comme résultat de l'utilisation de Collectors.groupingBy()
une Carte de regroupement d'abord le Subject
objets par Subject.origin
, puis regroupées par Subject.type
Obtenir comme résultat un objet comme celui-ci Map<String, Map<Type, List<Subject>>>
OriginalL'auteur alexzm1 | 2015-06-13
Vous devez vous connecter pour publier un commentaire.
groupingBy
accepte en aval du collecteur, qui peut aussi être ungroupingBy
:.collect(groupingBy(DishIngredientMass::getDishId, groupingBy(DishIngredientMass::getIngredientId, summingDouble(DishIngredientMass::getCookMass))))
OriginalL'auteur Misha
OriginalL'auteur frhack