Java – good way to have a Map get and put ignoring case?

case-insensitivejavamap

Is there a good way to have a Map<String, ?> get and put ignoring case?

Best Solution

TreeMap extends Map and supports custom comparators.

String provides a default case insensitive comparator.

So:

final Map<String, ...> map = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);

The comparator does not take locale into account. Read more about it in its JavaDoc.