Прежде всего, ваши типы карт выглядят немного неправильно.
Вы хотели объявить Map<String, Map<String, TimePeriod>> map
?
Если это так, вам не нужна эта вторая строкаMap. Вы можете добавить записи timePeriod в переменную map.
Если вы просто хотите печатать, вы можете сделать это:
Map<String, Map<String, TimePeriod>> map = new HashMap<>();
Map<String,TimePeriod> timePeriodMap = new HashMap<>();
timePeriodMap.put("DEFAULT1",new TimePeriod("NewYork"));
timePeriodMap.put("DEFAULT2",new TimePeriod("London"));
timePeriodMap.put("DEFAULT3",new TimePeriod("India"));
map.put("ID1",timePeriodMap);
map.put("ID2",timePeriodMap);
map.forEach((id, timePeriods) -> {
timePeriods.forEach((defaultValue, timePeriod) -> System.out.println(id + "=" + defaultValue + " => " + timePeriod.getZone()));
});
В интерфейсе Map есть метод forEach, позволяющий выполнять итерацию entrySet , Итерируя «внешний» набор записей карты, а затем итерируя «внутренний» набор записей вложенной карты, вы можете получить желаемый результат.