问题
I'm using a HashMap. When I iterate over the map, the data is returned in (often the same) random order. But the data was inserted in a specific order, and I need to preserve the insertion order. How can I do this?
回答1:
LinkedHashMap is precisely what you're looking for.
It is exactly like HashMap, except that when you iterate over it, it presents the items in the insertion order.
回答2:
HashMap is unordered per the second line of the documentation:
This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time.
Perhaps you can do as aix suggests and use a LinkedHashMap, or another ordered collection. This link can help you find the most appropriate collection to use.
来源:https://stackoverflow.com/questions/10710193/how-to-preserve-insertion-order-in-hashmap