If i put and iterate in order, should I use LinkedHashMap
or TreeMap
?
I will use a Map<int, MyObj>
, and I will put them in numerical order (1,2,3,...).
I know about their big-O time performances, but I also know that this is a borderline use.
Can someone help me? Thanks
CodePudding user response:
Use a TreeMap
. Not for any performance reasons, but because it can be assigned to SortedMap
(or NavigableMap
), and that communicates clearly your intent that the map has a defined order.
CodePudding user response:
- If you want to keep the entries in the order in which you originally insert them, use
LinkedHashMap
. - If you want the entries kept in a sorted order, use a
NavigableMap
, the successor toSortedMap
. Java comes with two such implementations:TreeMap
andConcurrentHashMap
. The latter is thread-safe.
The sorted maps by default use natural order. Optionally, you can provide a Comparator
to use for sorting. This has been covered many times already on Stack Overflow, so search to learn more.