На вашем месте я бы отправил List
и использовал бы Collectors.partitioningBy
, чтобы собрать его в Map<Boolean, List<Person>>
, где мужчины true
(или false
), а женщины противоположнымужчины.Это просто, как показано ниже:
personList.stream()
.collect(Collectors.partitioningBy(person -> "male".equals(person.getGender())));
Печать этого приведет к следующему (после реализации Person#toString
):
{false=[Person [Name: Monica, Age: 30, Gender: female], Person [Name: Sophia, Age: 20, Gender: female], Person [Name: Carol, Age: 25, Gender: female]], true=[Person [Name: Adam, Age: 30, Gender: male], Person [Name: John, Age: 32, Gender: male]]}