private final LinkedHashMap<String, V> targetMap;
private final HashMap<String, String> caseInsensitiveKeys;
В этом случае targetMap
содержит строку реального регистра для вашего объекта, а caseInsensitiveKeys
содержит отображение вашего ключа в нижнем регистре на ваш ключ реального регистра.
Позволяет показать вамключи реального регистра, когда вы выполняете для каждой итерации, но в то же время она позволяет вам не учитывать регистр.
Итак, допустим, следующий код:
LinkedCaseInsensitiveMap<Object> map = new LinkedCaseInsensitiveMap<>();
map.put("MyCustomObject", new Object());
"MyCustomObject" -> new Object()
в targetMap
и "mycustomobject" -> "MyCustomObject"
в caseInsensitiveKeys
.И теперь, если вы попытаетесь распечатать все объекты с вашего map
, он напечатает его, как вы добавили, а не изменили ключи.Вы не можете заархивировать его без второй карты.