Ich habe gesucht, um, und ich könnte nicht eine intelligente Art und Weise zu tun, eine Spaltung einer Liste.
Lassen Sie uns sagen, dass wir das folgende Beispiel haben:
public class Person {
private String name;
private int age;
private String gender;
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
// Getters/setters
}
Also ich habe:
List<Person> personList = new ArrayList<>();
personList.add(new Person("Adam", 30, "male"));
personList.add(new Person("John", 32, "male"));
personList.add(new Person("Monica", 30, "female"));
personList.add(new Person("Sophia", 20, "female"));
personList.add(new Person("Carol", 25, "female"));
Gibt es eine Möglichkeit, dass ich zwei neue Listen der Person mit Stream-API Gruppierung männlichen und weiblichen erzeugen könnte?
Sorry für die Kürze, aber ich bin auf dem Zug nach Hause zu gehen.
Map<String, List<Person>> map = list.stream()
.collect(Collectors.groupingBy(Person::getGender));
Und der Code
public class Person {
private String name;
private int age;
private String genre;
public Person(String name, int age, String genre) {
this.name = name;
this.age = age;
this.genre = genre;
}
// getters and setters
}
public class GroupBy {
public static void main(String[] args) {
List<Person> list = ArrayList();
liist.add(new Person("Adam", 30, male));
list.add(new Person("John", 32, male));
list.add(new Person("Monica", 30, female));
list.add(new Person("Sophia", 20, female));
list.add(new Person("Carol", 25, female));
Map<String, List<Person>> map = list.stream()
.collect(Collectors.groupingBy(Person::getGender));
}
}
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen