2

If i put and iterate in natural order, should I use LinkedHashMap or TreeMap?

I will use a Map<int, MyObj>, and I will put them in natural order (1,2,3,...). I know about their big-O time performances, but I also know that this is a borderline use.

albertopasqualetto
  • 87
  • 1
  • 1
  • 11

2 Answers2

2

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.

erickson
  • 265,237
  • 58
  • 395
  • 493
1
  • 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 to SortedMap. Java comes with two such implementations: TreeMap and ConcurrentHashMap. 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.

Basil Bourque
  • 303,325
  • 100
  • 852
  • 1,154