Как я могу реализовать
class CaseInsensitiveConcurrentMap<V> implements ConcurrentMap<String , V>
который работает так же, как ConcurrentHashMap<String , V>
, за исключением того, что ключи сравниваются без учета регистра? Ключи не должны быть преобразованы в строчные или прописные.
Обратите внимание, что Collections.synchronizedMap(new TreeMap<String, new MyCaseInsensitiveComparator())
не является решением, так как он не позволяет concurrency и пропускает дополнительные методы.
Создание String-подобного класса с нечувствительностью к регистру equals
и hashCode
тоже не является параметром, так как карта должна быть передана методам, ожидающим строки как ключи.