Use a LinkedHashMap
.
Hash table and linked list
implementation of theMap
interface,
with predictable iteration order. This
implementation differs fromHashMap
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). Note that
insertion order is not affected if a
key is re-inserted into the map. (A
key k is reinserted into a map m if
m.put(k, v)
is invoked when
m.containsKey(k)
would returntrue
immediately prior to the invocation.)
combined with Collections.synchronizedMap()
.
So, for example:
Map<String, String> map = Collections.synchronizedMap(
new LinkedHashMap<String, String>());