У меня есть карта ввода (давайте назовем этот imap):
Map<ID, Map<Date, Value>>
которую я пытаюсь преобразовать в структуру карты ниже:
Map<FormattedDate, Map<ID, Value>>
Я создал базовая карта инициализируется со значениями целевой структуры по умолчанию для возможных дат и идентификаторов (давайте назовем это fmap)
Code:
imap.keySet().stream().forEach( id -> {
imap.get(id).keySet().stream().forEach(
date -> {
fmap.get(form(date)).put(id, imap.get(id).get(date));
}
}
));
Но на финальной карте (fmap) результат Value объект для всех дат совпадает для идентификатора, даже если на входе есть разные данные.
Вопрос:
- Что происходит неправильно, из-за чего для идентификатора вставляется одно и то же значение с другой датой
- Есть ли лучший способ сделать это?