Если jList не чувствителен к изменениям исходной карты, то оригинальный метод, который вы использовали, подходит (лучше, чем использование Vector, у которого есть дополнительный уровень синхронизации).
Если вы хотите, чтобы jList изменялся при изменении карты, вам придется написать свою собственную ListModel (что не так сложно). Вам также придется выяснить, как узнать, когда карта изменится.