Реализация интерфейса карты в Java - очень важная задача. Для этого у нас есть TreeMap и HashMap . В этой статье мы сосредоточимся на TreeMap в в следующем порядке:
- Что такое TreeMap в Java?
- Особенности TreeMaps
- Конструкторы в TreeMap
- Методы в TreeMap
- Пример TreeMap на Java
Что такое TreeMap в Java?
TreeMap в Java используется для реализации интерфейса Map и NavigableMap вместе с абстрактным классом. Карта сортируется в соответствии с естественным порядком ее ключей или компаратором, предоставленным во время создания карты, в зависимости от того, какой конструктор используется. Это оказывается эффективным способом сортировки и хранения пар ключ-значение.
установить php на windows 7
Порядок хранения, поддерживаемый древовидной картой, должен согласовываться с равными, как и любая другая отсортированная карта, независимо от явных компараторов. Древовидная картареализация не синхронизирована в том смысле, что если к карте обращаются одновременно несколько потоков и хотя бы один из потоков структурно изменяет карту, она должна быть синхронизирована извне.
Особенности TreeMaps
Этот класс является членом Java Collections Framework.
Класс реализует интерфейсы Map, включая NavigableMap, SortedMap и расширяет AbstractMap.
TreeMap в Java не допускает использования пустых ключей (например, Map), поэтому возникает исключение NullPointerException. Однако несколько значений NULL могут быть связаны с разными ключами.
Все пары Map.Entry, возвращаемые методами в этом классе и его представлениях, представляют собой моментальные снимки отображений на момент их создания.
Они не поддерживают метод Entry.setValue.
Важные моменты, которые следует помнить
Помимо реализации интерфейса Map, Java TreeMap также реализует NavigableMap и косвенно реализует интерфейс SortedMap. TreeMap также расширяет класс AbstractMap.
Записи TreeMap отсортированы в естественном порядке их ключей. Он также предоставляет конструктор для предоставления Comparator, который будет использоваться для упорядочивания. Поэтому, если вы используете какой-либо класс в качестве ключа, убедитесь, что он реализует интерфейс Comparable для естественного упорядочивания. Ознакомьтесь с вопросами собеседования с коллекциями Java, чтобы понять важность этих методов.
Реализация Java TreeMap обеспечивает гарантированные затраты времени log (n) для операций containsKey, get, put и remove.
как динамически выделить массив в java
TreeMap не синхронизируется и, следовательно, не является потокобезопасным. Для многопоточных сред вы можете получить синхронизированную оболочку с помощью метода Collections.synchronizedSortedMap.
Методы TreeMap для получения набора ключей и значений возвращают Iterator, который по своей природе работает без сбоев, поэтому любое одновременное изменение вызовет исключение ConcurrentModificationException.
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», и мы свяжемся с вами как можно скорее.