Краткое введение в TreeMap на Java с примерами



Эта статья предоставит вам подробные и всесторонние знания о TreeMap в Java с примерами методов и конструкторов.

Реализация интерфейса карты в Java - очень важная задача. Для этого у нас есть TreeMap и HashMap . В этой статье мы сосредоточимся на TreeMap в в следующем порядке:

Что такое TreeMap в Java?

TreeMap в Java используется для реализации интерфейса Map и NavigableMap вместе с абстрактным классом. Карта сортируется в соответствии с естественным порядком ее ключей или компаратором, предоставленным во время создания карты, в зависимости от того, какой конструктор используется. Это оказывается эффективным способом сортировки и хранения пар ключ-значение.





установить php на windows 7

TreeMap-in-JavaПорядок хранения, поддерживаемый древовидной картой, должен согласовываться с равными, как и любая другая отсортированная карта, независимо от явных компараторов. Древовидная картареализация не синхронизирована в том смысле, что если к карте обращаются одновременно несколько потоков и хотя бы один из потоков структурно изменяет карту, она должна быть синхронизирована извне.

Особенности TreeMaps

  • Этот класс является членом Java Collections Framework.



  • Класс реализует интерфейсы Map, включая NavigableMap, SortedMap и расширяет AbstractMap.

  • TreeMap в Java не допускает использования пустых ключей (например, Map), поэтому возникает исключение NullPointerException. Однако несколько значений NULL могут быть связаны с разными ключами.

  • Все пары Map.Entry, возвращаемые методами в этом классе и его представлениях, представляют собой моментальные снимки отображений на момент их создания.



  • Они не поддерживают метод Entry.setValue.

Важные моменты, которые следует помнить

  1. Помимо реализации интерфейса Map, Java TreeMap также реализует NavigableMap и косвенно реализует интерфейс SortedMap. TreeMap также расширяет класс AbstractMap.

  2. Записи TreeMap отсортированы в естественном порядке их ключей. Он также предоставляет конструктор для предоставления Comparator, который будет использоваться для упорядочивания. Поэтому, если вы используете какой-либо класс в качестве ключа, убедитесь, что он реализует интерфейс Comparable для естественного упорядочивания. Ознакомьтесь с вопросами собеседования с коллекциями Java, чтобы понять важность этих методов.

  3. Реализация Java TreeMap обеспечивает гарантированные затраты времени log (n) для операций containsKey, get, put и remove.

    как динамически выделить массив в java
  4. TreeMap не синхронизируется и, следовательно, не является потокобезопасным. Для многопоточных сред вы можете получить синхронизированную оболочку с помощью метода Collections.synchronizedSortedMap.

  5. Методы TreeMap для получения набора ключей и значений возвращают Iterator, который по своей природе работает без сбоев, поэтому любое одновременное изменение вызовет исключение ConcurrentModificationException.

  6. TreeMap в java не допускает использования пустых ключей, однако вы можете иметь несколько значений NULL, связанных с разными ключами.

Конструкторы в TreeMap

Строитель Описание
TreeMap () Создает пустую древовидную карту, которая будет отсортирована с использованием естественного порядка ее ключей.
TreeMap (компаратор) Создает пустую древовидную карту, которая будет отсортирована с помощью Comparator comp.
TreeMap (карта m) Инициализирует древовидную карту записями из m, которые будут отсортированы с использованием естественного порядка ключей.
TreeMap (SortedMap sm) Инициализирует древовидную карту с записями из SortedMap sm, которые будут отсортированы в том же порядке, что и sm.

Методы в TreeMap

Метод Описание
пусто ясно () Удаляет все сопоставления из этого TreeMap.
Клон объекта () Возвращает мелкую копию этого экземпляра TreeMap.
Компаратор компаратор () Возвращает компаратор, используемый для упорядочивания этой карты, или null, если эта карта использует естественный порядок своих ключей.
boolean containsKey (ключ объекта) Возвращает истину, если эта карта содержит отображение для указанного ключа.
boolean containsValue (значение объекта) Возвращает истину, если эта карта отображает один или несколько ключей на указанное значение.
Установить entrySet () Возвращает набор отображений, содержащихся на этой карте.
Объект firstKey () Возвращает первый (самый младший) ключ на этой отсортированной карте.
Объект получить (ключ объекта) Возвращает значение, которому эта карта сопоставляет указанный ключ.
SortedMap headMap (объект toKey) Возвращает представление части этой карты, ключи которой строго меньше, чем toKey.
Установить keySet () Возвращает набор ключей, содержащихся на этой карте.
Объект lastKey () Возвращает последний (самый высокий) ключ в этой отсортированной карте.
Размещение объекта (ключ объекта, значение объекта) Связывает указанное значение с указанным ключом на этой карте.
void putAll (карта карта) Копирует все сопоставления с указанной карты на эту карту.
Удаление объекта (ключ объекта) Удаляет отображение для этого ключа из этого TreeMap, если он присутствует.
размер int () Возвращает количество сопоставлений 'ключ-значение' на этой карте.
Вложенная карта SortedMap (объект из ключа, объект в ключ) Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey включительно до toKey (исключая).
SortedMap tailMap (объект из ключа) Возвращает представление части этой карты, ключи которой больше или равны fromKey.
Значения коллекции () Возвращает представление коллекции значений, содержащихся в этой карте.

Пример TreeMap на Java

import java.util.TreeMap public class TreeMapMain {public static void main (String args []) {// TreeMap с Country в качестве ключа и заглавной буквы в качестве значения // TreeMap хранит элементы в естественном порядке ключей. TreeMap countryCapitalMap = new TreeMap () countryCapitalMap.put ('Индия', 'Дели') countryCapitalMap.put ('Япония', 'Токио') countryCapitalMap.put ('Франция', 'Париж') countryCapitalMap.put ('Россия' , 'Москва') System.out.println ('-----------------------------') // Итерация TreeMap с помощью keySet ( ) и для каждого цикла System.out.println ('Итерация TreeMap с использованием keySet () и для каждого цикла') для (String countryKey: countryCapitalMap.keySet ()) {System.out.println ('Country:' + countryKey + ' и Capital: '+ countryCapitalMap.get (countryKey))} System.out.println (' ----------------------------- ' )}}

Вывод:

На этом мы подошли к концу статьи о TreeMap в Java. C черт возьми от Edureka, надежной компании онлайн-обучения с сетью из более чем 250 000 довольных учащихся по всему миру. Курс обучения и сертификации по Java J2EE и SOA от Edureka предназначен для студентов и профессионалов, которые хотят стать Java-разработчиками. Курс разработан, чтобы дать вам хорошее начало в программировании на Java и обучить вас как основным, так и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого блога «TreeMap на Java», и мы свяжемся с вами как можно скорее.