Ok, donc j'ai un List<Person>
. et chaque Person
a un List<String>
c'est une liste de numéros de téléphone que cette personne possède.
Voici donc la structure de base :
public class Person {
private String name;
private List<String> phoneNumbers;
// constructors and accessor methods
}
Je voudrais créer un Map<String, Person>
où la clé est chaque numéro de téléphone que la personne possède, et la valeur est la personne réelle.
Donc, pour mieux expliquer. Si j'avais ceci List<Person>
:
Person bob = new Person("Bob");
bob.getPhoneNumbers().add("555-1738");
bob.getPhoneNumbers().add("555-1218");
Person john = new Person("John");
john.getPhoneNumbers().add("518-3718");
john.getPhoneNumbers().add("518-3115");
john.getPhoneNumbers().add("519-1987");
List<Person> list = new ArrayList<>();
list.add(bob);
list.add(john);
et j'ai invoqué cette méthode. Cela me donnerait le résultat suivant Map<String, Person>
Map<String, Person> map = new HashMap<>();
map.put("555-1738", bob);
map.put("555-1218", bob);
map.put("518-3718", john);
map.put("518-3115", john);
map.put("519-1987", john);
J'aimerais savoir comment y parvenir en utilisant la fonction stream
car je sais déjà comment le faire en utilisant l'API. for
les boucles et autres.