В дополнение ко всем остальным ответам и согласию с тем, что невозможно иметь единую структуру TreeMap с разными компараторами:
Из вашего вопроса я понимаю, что у вас есть два требования: модель данных должна быть чувствительной к регистру (вам нужны значения с учетом регистра при использовании get()
), ведущий должен быть нечувствительным к регистру (вам нужен порядок с учетом регистра, представление - это просто предположение ).
Предположим, мы заполняем карту отображениями (aa,obj1), (aA,obj2), (Aa,obj3), (AA,obj4). Итератор предоставит значения в следующем порядке: (obj4, obj3, obj2, obj1)(*). Какой порядок вы ожидаете, если карта была заказана без учета регистра? Все четыре ключа будут равны, а порядок не определен. Или вы ищете решение, которое разрешало бы набор {obj1, obj2, obj3, obj4} для ключа «AA»? Но это другой подход.
SO призывает сообщество быть честным: поэтому мой совет на данный момент — еще раз взглянуть на ваше требование :)
(*) не проверено, предполагается, что 'A' ‹ 'a' = true.
person
Andreas Dolk
schedule
23.11.2009