Is there a good way to have a Map<String, ?>
get and put ignoring case?
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.