Преобразование списка объектов в Java в карту ключа String в List <objects>с использованием одного из его полей в качестве ключа - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть список объектов List<Car> cars

public class Car{
  String make;
  String model;
  String year;
  String price;
}

Я хочу краткий способ преобразования этого списка в карту Map<String, List<Car>> с использованием make в качестве ключа. Я мог бы написать функцию, чтобы сделать это, но мне было интересно, если Lambdas или Stream API в Java 8 предоставляет готовый способ для достижения этой цели.

Я изменил вопрос для Map<String, List<Car>>

Ответы [ 3 ]

0 голосов
/ 27 апреля 2018

Вы можете сделать это так

cars.stream()
   .collect(Collectors.toMap(
      car -> car.make,
      Function.identity()
   )
0 голосов
/ 27 апреля 2018
Map<String, List<Car>> result = 
          myList.stream()
                .collect(Collectors.groupingBy(Car::getMake));
0 голосов
/ 27 апреля 2018

Да, очень хорошо поддерживается.

Сделай так:

Map<String, List<Car>> youCarMap = yourCarList.stream().collect(
                Collectors.groupingBy(Car::getMake,
                    Collectors.mapping(c->c, Collectors.toList())));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...