У меня есть два разных списка одних и тех же объектов, но разных свойств и с общим идентификатором в этих объектах.Я хотел бы перебрать первый список и получить соответствующий объект из второго (который имеет общие свойства), а затем обернуть эти объекты вокруг и, наконец, добавить этот объект в список с помощью потоков Java.
ЭтоПример, который я взял.
private class Person {
private String name;
private boolean isSenior;
private Person(String name, boolean isSenior) {
this.name = name;
this.isSenior = isSenior;
}
public String getName() {
return name;
}
public boolean isSenior() {
return isSenior;
}
@Override
public String toString() {
return name + ": " + isSenior;
}
}
private class PersonWrapper {
private Person jrPerson;
private Person srPerson;
private PersonWrapper(Person jrPerson, Person srPerson) {
this.jrPerson = jrPerson;
this.srPerson = srPerson;
}
public Person getJrPerson() {
return jrPerson;
}
public Person getSrPerson() {
return srPerson;
}
@Override
public String toString() {
return jrPerson.toString() + "-" + srPerson.toString();
}
}
Теперь в основном классе я создам два экземпляра списка, как этот
List<Person> jrPersons = new ArrayList<>();
List<Person> srPersons = new ArrayList<>();
, и добавлю объекты следующим образом
jrList.add(new Person("John", false));
jrList.add(new Person("Paul", false));
jrList.add(new Person("Mike", false));
seniorList.add(new Person("John", true));
seniorList.add(new Person("Paul", true));
seniorList.add(new Person("Mike", true));
Теперь я хочу перебрать jrList и найти соответствующий объект Person в srList (то же имя).Затем я бы обернул эти объекты как PersonWrapper
, а этот объект - в список.
Пока что это то, чем я занимался
List<PersonWrapper> wrapperList = new ArrayList<>();
jrList.forEach(jr -> seniorList.stream().filter(sr -> jr.getName().equals(sr.getName())).map(sr -> new PersonWrapper(jr, sr)).collect(Collectors.toList()));
Теперь я хотел бы знать, какCollectors.toList()
можно заменить на wrapperList
или как добавить к wrapperList
вывод из Collectors.toList()
.
Пожалуйста, помогите мне в достижении этого.