Как группировать список данных на основе одного поляJAVA

Программисты JAVA общаются здесь
Anonymous
Как группировать список данных на основе одного поля

Сообщение Anonymous »

У меня есть список пользовательских данных класса, я хочу сгруппировать их на основе одного поля, и значение должно быть еще одним полем. Возьмите пример ниже. < /P>
List list = new ArrayList();
list.add(new Student(1001, "Class 1", "Jon"));
list.add(new Student(1002, "Class 1", "Eliana"));
list.add(new Student(1003, "Class 2", "Piter"));
list.add(new Student(1004, "Class 3", "Joy"));
list.add(new Student(1005, "Class 2", "Anderson"));
list.add(new Student(1006, "Class 1", "Ram"));
list.add(new Student(1007, "Class 1", "Mohan"));
< /code>
Теперь я хотел бы сгруппировать эти данные на основе класса. Ожидаемый вывод должен быть картой, содержащей ключ как класс и значение в качестве списка имен студентов. < /P>
{"Class 1" -> ["Jon", "Eliana", "Ram", "Mohan"]}
{"Class 2" -> ["Piter", "Anderson"]}
{"Class 3" -> ["Joy"]}
< /code>
Я хочу получить это с помощью функции потока Java 8. Я попытался сделать это, и я мог группировать весь объект в карту, поскольку ключом является имя класса, а значение - это список студентов. Но мое требование состоит в том, чтобы получить значение как единственный список имен студентов.list.stream().collect(Collectors.groupingBy(Students::getClass));


Подробнее здесь: https://stackoverflow.com/questions/629 ... -one-field

Вернуться в «JAVA»