将java中的对象列表转换为字符串键到列表的映射<;对象>;使用其中一个字段作为键

将java中的对象列表转换为字符串键到列表的映射<;对象>;使用其中一个字段作为键,java,collections,java-stream,Java,Collections,Java Stream,我有一个对象列表列出汽车 public class Car{ String make; String model; String year; String price; } 我想要一种简洁的方法,使用make作为键将此列表转换为mapmap。我可以编写一个函数来实现这一点,但我想知道Java8中的Lambdas或streamAPI是否提供了一种现成的方法来实现这一点 我已经修改了地图的问题是的,它得到了很好的支持 这样做: Map<String, List<Car&

我有一个对象列表
列出汽车

public class Car{
  String make;
  String model;
  String year;
  String price;
}
我想要一种简洁的方法,使用make作为键将此列表转换为map
map
。我可以编写一个函数来实现这一点,但我想知道Java8中的Lambdas或streamAPI是否提供了一种现成的方法来实现这一点


我已经修改了
地图的问题

是的,它得到了很好的支持

这样做:

Map<String, List<Car>> youCarMap = yourCarList.stream().collect(
                Collectors.groupingBy(Car::getMake,
                    Collectors.mapping(c->c, Collectors.toList())));
Map youCarMap=yourcalist.stream().collect(
收集器。分组方式(汽车::getMake,
Collectors.mapping(c->c,Collectors.toList());

是的,它得到了很好的支持

这样做:

Map<String, List<Car>> youCarMap = yourCarList.stream().collect(
                Collectors.groupingBy(Car::getMake,
                    Collectors.mapping(c->c, Collectors.toList())));
Map youCarMap=yourcalist.stream().collect(
收集器。分组方式(汽车::getMake,
Collectors.mapping(c->c,Collectors.toList());
你可以这样做

cars.stream()
   .collect(Collectors.toMap(
      car -> car.make,
      Function.identity()
   )
你可以这样做

cars.stream()
   .collect(Collectors.toMap(
      car -> car.make,
      Function.identity()
   )
映射结果=
myList.stream()
.collect(收集器.groupingBy(Car::getMake));
映射结果=
myList.stream()
.collect(收集器.groupingBy(Car::getMake));

好的,你可以使用或者如果你真的想看l334,你可以使用或者你可以尝试通过谷歌找到的许多日志中的一个,如果你在使用番石榴:
Maps.uniqueIndex(cars,Car::getMake)
好的,你可以使用或者如果你真的想看l334,如果您使用的是番石榴,您可以使用或尝试通过谷歌找到的许多日志中的一个,就像可能的副本一样:
Maps.uniqueIndex(cars,Car::getMake)
对问题稍加修改。实际上我还想准备一张地图。我怎样才能做到这一点@Shanu Gupta对问题作了轻微修改。实际上我还想准备一张地图。我怎样才能做到这一点@沙努古普塔