У меня есть хэш-карта с ключом в качестве целого числа и значением в виде списка дат. Я пытаюсь обновить одно из значений для определенного целого числа. Первоначально даты будут одинаковыми для всех ключей.
Теперь я хочу установить одну из дат как нулевую на 101 ключ, когда я обновляю определенный ключ, он обновляется для всех ключей. Где я делаю не так? Пожалуйста, предложите.
Вот мой код
Исходные даты установлены следующим образом
// Set dates to all records
resultDate = [Mon Jan 01 00:00:00 IST 2018, Fri Dec 31 00:00:00 IST 9999] // Typo here
Set<Integer> records= parsedResults.keySet();
if (records.size() > 0) {
for (Integer record: records) {
dateMap.get(Integer.parseInt(record));
dateMap.put(record,resultDate);
}
}
Затем обновление даты окончания как нулевого только для 101
for (Map.Entry<Integer, List<Date>> entry : dateMap.entrySet()) {
if(entry.getKey().equals(Integer.parseInt("101"))) {
List<Date> dates = entry.getValue();
if(null == effDate) {
dates.set(0, null);
} else {
dates.set(0, effDate);
}
if(null == endDate) {
dates.set(1, null);
} else {
dates.set(1, endDate);
}
dateMap.put(Integer.parseInt("101"), dates);
}
}
Начальная дата ответа на карту
{101=[Mon Jan 01 00:00:00 IST 2018, Fri Dec 31 00:00:00 IST 9999], 102=[Mon Jan 01 00:00:00 IST 2018, Fri Dec 31 00:00:00 IST 9999], 103=[Mon Jan 01 00:00:00 IST 2018, Fri Dec 31 00:00:00 IST 9999]}
После того, как я обновлюсь как null,
{101=[Mon Jan 01 00:00:00 IST 2018, null], 102=[Mon Jan 01 00:00:00 IST 2018, null], 103=[Mon Jan 01 00:00:00 IST 2018, null]}