У меня есть требование выбрать подсписок из заданного суперсписка, как объяснено ниже.
Допустим, у меня есть суперсписок объектов "Person" следующим образом:
List<Person> personsList = new ArrayList<>();
personsList.add(new Person("John", 28));
personsList.add(new Person("Paul", 29));
personsList.add(new Person("Adam", 30));
personsList.add(new Person("Peter", 31));
personsList.add(new Person("Kate", 32));
personsList.add(new Person("John", 67));
personsList.add(new Person("Paul", 68));
personsList.add(new Person("Adam", 69));
Пусть класс Person будет определен следующим образом:
class Person {
public String name;
public int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return name + ": " + age;
}
}
Используя API Java Streams, как мне получить подсписок с записями, как показано ниже (обратите внимание, что повторяющиеся экземпляры объектов с одинаковыми именами должны бытьизвлечено):
John : 28
John : 67
Paul : 29
Paul : 68
Adam : 30
Adam : 69
Может кто-нибудь помочь мне в достижении этого с помощью Java 8 Streams API?
PS: я бы не знал заранее, какие значения существуют в качестве имен для этих объектов.