Use LinkedHashMap instead of HashMap. The former preserves the order of the insertion of the elements.
From its JavaDoc (emphasis mine):
Hash table and linked list implementation of the Map interface, with predictable iteration order. This implementation differs from HashMap in that it maintains a doubly-linked list running through all of its entries. This linked list defines the iteration ordering, which is normally the order in which keys were inserted into the map (insertion-order).
This will make your Map and your List (backed by an ArrayList) have the elements in the same order.
Not sure how have you designed your app, but I recommend you to program oriented to interfaces (Map, List, etc...) instead of classes (HashMap, ArrayList, etc...). More info: What does it mean to "program to an interface"?
Map(especially if you already have aListto keep the order). TheMapshould usually be accessed via the key, in that case the order does not matter.