vai*_*092 9 java lambda dictionary list java-8
我有对象列表说需要转换为地图的汽车.
Public Class Car {
private Integer carId;
private Integer companyId;
private Boolean isConvertible;
private String carName;
private String color;
private BigDecimal wheelBase;
private BigDecimal clearance;
}
Run Code Online (Sandbox Code Playgroud)
我有另一个对象,我想把它当作Map的关键.
public class Key<L, C, R> {
private L left;
private C center;
private R right;
}
Run Code Online (Sandbox Code Playgroud)
我想从List of Car对象创建一个地图.
List<Car> cars;
Map<Key, Car> -> This map contains Key object created from 3 field of Car object namely carId, companyId, isConvertible.
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何使用Java 8 Lambda执行此操作
cars.stream.collect(Collectors.toMap(?, (c) -> c);
Run Code Online (Sandbox Code Playgroud)
在上面的语句中,代替?,我想使用当前car对象中存在的值创建Key类的对象.我怎样才能做到这一点?
Kon*_*kov 10
你可以做:
Function<Car, Key> mapper = car -> new Key(car.getId(),
car.getCompanyId(),
car.isConvertible());
cars.stream().collect(Collectors.toMap(mapper, Function.identity());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2590 次 |
最近记录: |