Как использовать структуру данных Java TreeMap

Как использовать структуру данных Java TreeMap

Класс Java TreeMap хранит данные в древовидной структуре, используя интерфейс карты. Этот класс расширяет класс AbstractMap и, как и его родительский класс, TreeMap имеет два параметра типа. Один из его параметров типа представляет ключи в TreeMap, а другой — значения.





Структура данных TreeMap хранит пары ключ-значение и позволяет выполнять операции CRUD с этими данными.





Как создать TreeMap в Java

Класс TreeMap имеет четыре конструктора, которые можно использовать для создания нового объекта TreeMap. Конструктор по умолчанию — самый популярный из четырех. Этот конструктор не принимает аргументов и создает пустую карту дерева.





// Create a new tree map 
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

Приведенный выше код генерирует пустую карту дерева с именем клиенты .

как удалить домашнюю группу windows 10

Заполнение структуры данных TreeMap

помещать() Метод добавляет элемент в объект TreeMap. Он принимает два аргумента — ключ и его значение. Вы можете добавлять элементы на древовидную карту в любом случайном порядке, и структура данных будет хранить их в порядке возрастания в соответствии с их ключами.



// Populate a tree map 
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");

Приведенный выше код добавляет пять клиентов в случайном порядке на карту дерева клиентов.

Просмотр элементов в TreeMap

Класс TreeMap хранит свои данные в объекте. Итак, чтобы увидеть все элементы карты дерева, вы можете просто вывести объект карты дерева в консоль:





// View all tree map items as an object 
System.out.println(customers);

Приведенный выше код выводит на консоль следующий вывод:

{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Обратите внимание, что объект выше отображает элементы в порядке возрастания. Вы также можете просмотреть каждый элемент и соответствующий ему ключ, используя Java для цикла .





// View all items with an iterator 
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

Приведенный выше код выводит на консоль следующий вывод:

Key: 101 Value: Kim Brown 
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones

Обновление элементов в TreeMap

Класс TreeMap позволяет обновлять существующий элемент с помощью заменять() метод. Существует два метода замены. Первый метод принимает существующий ключ и новое значение, с которым вы хотите сопоставить существующий ключ.

// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

Приведенный выше код выводит в консоль следующий объект:

{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Как вы видете Ким Браун сейчас Ким Смит . Второй метод replace() принимает существующий ключ, текущее значение ключа и новое значение, которое вы хотите сопоставить с ключом.

// Replace existing value 
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

Приведенный выше код выводит в консоль следующий объект:

{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}

В объекте выше Мишель Ноа заменяет Джим Райли .

Удаление элементов из TreeMap

Если вы хотите удалить один элемент из карты дерева, удалять() метод - ваш единственный вариант. Он берет ключ, связанный с элементом, который вы хотите удалить, и возвращает удаленное значение.

// Remove an item 
customers.remove(104);
System.out.println(customers);

Выполнение приведенного выше кода выводит на консоль следующий объект:

файл открыт в системе не может удалить
{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

Этот Java-класс также имеет Чисто() метод, позволяющий удалить все элементы на карте дерева.

TreeMap против Java-класса HashMap

TreeMap и HashMap — два наиболее популярных класса карт Java. Оба они расширяют класс AbstractMap. Эта связь дает классам TreeMap и HashMap доступ ко многим одним и тем же функциям.

Однако между этими двумя классами карт есть некоторые примечательные различия. TreeMap использует реализацию интерфейса Map в виде красно-черного дерева, а HashMap использует хэш-таблицу. HashMap позволяет хранить один нулевой ключ, а TreeMap — нет. Наконец, HashMap быстрее, чем TreeMap. Алгоритмическая скорость первого — O(1), а второго — O(log(n)).