Est-il possible (de manière simple) de le changer en java8
Stream
? (S'il vous plaît ne pas commenter/répondre si vous voulez me dire que deux for
sont meilleurs et toutes les boucles doivent être changées en cours d'eau, ce n'est pas un point)Création d'une carte à partir de la liste, où la clé fait partie d'un objet interne et externe
final Map<String, String> map = new HashMap<>();
for(final Person person: list) {
for(final Internal internal: person.getInternals()) {
final String key = person.getName() + internal.getKey();
map.put(key, internal.getValue());
}
}
Le principal problème est que je ne peux pas utiliser flatMap
parce que je vais perdre les informations précédentes. Chaque création key
est unique.
vous n'avez pas besoin deuxième boucle du tout, car il est le même que: pour chaque personne, mettre son nom et dernière valeur interne la carte. Vous pouvez le faire en groupant le collecteur – mlecz