Mam List<UserMeal>
kolekcję, gdzie UserMeal posiada:Collectors.toMap() keyMapper
public class UserMeal {
private final LocalDateTime dateTime;
private final int calories;
public UserMeal(LocalDateTime dateTime, int calories) {
this.dateTime = dateTime;
this.calories = calories;
}
public LocalDateTime getDateTime() {
return dateTime;
}
public int getCalories() {
return calories;
}
}
muszę przekształcić go w Map<LocalDate, Integer>
.
Kluczem mapy musi być dateTime
(przekonwertowany na) elementu UserMeal w kolekcji.
Wartość mapy musi być sumą calories
.
Nie mogę określić, jak to zrobić w przypadku strumieni. Coś takiego:
items.stream().collect(Collectors.toMap(...));
Każda pomoc?
Oto mój obecny kod, który oczywiście nie działa.
Map<LocalDate, Integer> values = mealList.stream()
.collect(Collectors.toMap(m->m.getDateTime().toLocalDate(),
m-> {/* HUH? */}));