Во-первых, я не уверен, почему люди здесь так часто заботятся о действительности вопроса. Существует множество случаев, когда люди сочли нужным поддерживать ArrayList в отсортированном порядке. Сохранение ArrayList в отсортированном порядке крайне неэффективно для больших списков.
Входящие узлы стандартного дистрибутива Java (Oracle) не поддерживают размер их деревьев-потомков. Из-за этого невозможно идентифицировать элемент внутри карты по индексу без неэффективного последовательного поиска.
Я нахожу этот недостаток настолько серьезным, что я написал свою собственную карту AVL, которая может эффективно получать элементы по индексу и вычислять indexOf (E). Сделать это возможно так же просто, как поддерживать размеры каждой из левых и правых ветвей входа. Существует некоторая вероятность того, что в библиотеке Glazedlists есть дерево с возможностью поиска, встроенное в него где-то. Вы можете рассмотреть это.
Почему вы хотите сделать это? Индексы являются внутренними для реализации TreeMap. Вы не должны их использовать. Вы всегда должны полагаться только на методы 'keys()', 'values ()' и 'get (key)'. –
Это совершенно преднамеренно, что вы не можете этого сделать, за исключением того, что просто перебираете «entrySet» в линейном времени. –
Я занимаюсь разработкой музыкального приложения и должен хранить имя альбома в ключе и альбоме. Ситуация подобна мне, чтобы получить как ключ, так и ценность. Я могу выполнить свою задачу, используя дополнительный ArrayList, но я хочу реализовать его просто. –