Существует четкая разница между использованием ...
Enumeration keys = siCache.keys();
и использованием ...
Iterator iterator = siCache.entrySet().iterator()
Опция 1 не вызовет исключение ConcurrentModificationException при удалении элементов из коллекции, покаитерация, тогда как вариант 2 будет.
Что касается того, почему ... Я считаю, что при создании ключей Enumeration в вашем примере это буквальная копия набора ключей таблиц, которая не синхронизируется с изменениями самой таблицы.
Это может или не может быть проблемой для вас.Если таблица используется одновременно, возможно, вы захотите перейти на использование итераторов коллекций.