Java разделить список на основе элемента - PullRequest
2 голосов
/ 28 февраля 2020

Итак, у меня есть класс Standard со свойствами и конструктором:

String studentName;
String category;

Standard(studentName, category)

У меня также есть List из Standard объектов, таких как:

[S1,S2,S3,S4]

где

S1 = Standard("ABC","1");
S2 = Standard("DEF","2")
S3 = Standard("IJK","1")
S4 = Standard("LMN","2")

Я бы хотел сгруппировать Standard объекты с одинаковыми category в Map(String,List<Standard>) с ключом category и значением List из Standard объектов типа Итак:

Map<String,List<Standard>> m = {1=[S1, S3], 2=[S2,S4]};

Теперь я хотел бы знать, можно ли это сделать с помощью Java 8 потоков.

1 Ответ

2 голосов
/ 28 февраля 2020

Вы можете использовать groupingBy коллектор:

Map<String, List<Standard>> map = standards.stream()
    .collect(Collectors.groupingBy(Standard::getCategory));

При условии, что реализован метод getCategory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...