Java Dictionary Class: A Beginner's Guide

Введение

Привет, будущие маги Java! Сегодня мы отправляемся в захватывающее путешествие в мир Java Словарей. Вы, возможно, думаете: "Словарь? Это не то, что я использую, чтобы искать слова?" Вы не ошибаетесь, но в мире программирования словари немного отличаются и чрезвычайно полезны!

Java - Dictionary

В Java словарь похож на магическую коробку, в которую можно хранить пары вещей. Представьте себе коробку с обувью, и каждая обувь имеет соответствующую носку. Словарь работает аналогично — вы кладете "ключ" (например, обувь), и он возвращает вам "значение" (например, соответствующую носку). Круто, правда?

Давайте погружаемся и посмотрим, как мы можем использовать этот мощный инструмент в наших приключениях с Java!

Объявление класса

Сначала сначала, давайте посмотрим, как объявляется словарь в Java:

import java.util.Dictionary;

public class MyDictionary extends Dictionary<Integer, String> {
// Ваш код здесь
}

Не пугайтесь этого! Давайте разберем это:

  1. Мы импортируем класс Dictionary из пакета утилит Java.
  2. Мы создаем свой собственный класс под названием MyDictionary.
  3. Мы говорим, что наш словарь будет использовать целые числа (Integer) в качестве ключей и строки (String) в качестве значений.

Представьте себе, что мы создаем особую коробку, в которую поместим числа (Integer) снаружи и слова (String) внутри.

Конструкторы класса

Теперь, когда у нас есть коробка словаря, давайте посмотрим, как мы можем создать ее:

public MyDictionary() {
// Код конструктора здесь
}

Это называется конструктор. Он похож на фабрику, которая строит нашу коробку словаря. Мы можем оставить его пустым на данный момент, так как Java предоставит默认 способ создания нашего словаря.

Методы класса

Вот где начинается магия! Словари приходят с некоторыми встроенными суперсилами (методами), которые мы можем использовать. Давайте рассмотрим несколько из них:

@Override
public int size() {
// Возвращает количество пар ключ-значение
}

@Override
public boolean isEmpty() {
// Проверяет, пуст ли словарь
}

@Override
public String get(Object key) {
// Получает значение, связанное с ключом
}

@Override
public String put(Integer key, String value) {
// Добавляет новую пару или обновляет существующую
}

@Override
public String remove(Object key) {
// Удаляет пару ключ-значение
}

Не беспокойтесь о @Override на данный момент. Это просто мы сообщаем Java, что мы используем нашу собственную версию этих методов.

Разберем их:

  1. size(): Подсчитывает, сколько пар в нашем словаре.
  2. isEmpty(): Проверяет, пуст ли наш словарь (как проверка, есть ли обувь в коробке).
  3. get(Object key): Находит значение для данного ключа (как находит носку, соответствующую обуви).
  4. put(Integer key, String value): Добавляет новую пару или обновляет существующую.
  5. remove(Object key): Удаляет пару из нашего словаря.

Наследованные методы

Наш словарь также наследует некоторые методы от своих родительских классов. Представьте себе, что это дополнительные функции, которые приходят с нашей коробкой словаря:

Метод Описание
clone() Создает копию словаря
equals(Object obj) Проверяет, равны ли два словаря
hashCode() Генерирует уникальный код для словаря
toString() Конвертирует словарь в строку
notify() Пробуждает поток, ожидающий на этом словаре
notifyAll() Пробуждает все потоки, ожидающие на этом словаре
wait() Заставляет текущий поток ждать

Эти методы могут быть очень полезны в более сложных сценариях программирования.

Пример добавления сопоставления в словарь Integer, Integer

Теперь попробуем применить наши знания на практике! Создадим словарь, который сопоставляет идентификаторы студентов (Integer) с их возрастами (также Integer):

import java.util.Dictionary;
import java.util.Hashtable;

public class StudentAges {
public static void main(String[] args) {
// Создаем новый словарь
Dictionary<Integer, Integer> studentAges = new Hashtable<>();

// Добавляем несколько идентификаторов студентов и их возрастов
studentAges.put(1001, 18);
studentAges.put(1002, 19);
studentAges.put(1003, 20);

// Выводим словарь
System.out.println("Возрасты студентов: " + studentAges);

// Получаем возраст студента
int studentId = 1002;
int age = studentAges.get(studentId);
System.out.println("Возраст студента с ID " + studentId + ": " + age);

// Удаляем студента
studentAges.remove(1001);

// Проверяем, пуст ли словарь
System.out.println("Пустой ли словарь? " + studentAges.isEmpty());

// Получаем размер словаря
System.out.println("Количество студентов: " + studentAges.size());
}
}

Разберем это:

  1. Мы создаем новый словарь под названием studentAges.
  2. Мы добавляем три студента с их идентификаторами и возрастами.
  3. Мы выводим весь словарь.
  4. Мы получаем и выводим возраст студента с идентификатором 1002.
  5. Мы удаляем студента с идентификатором 1001.
  6. Мы проверяем, пуст ли словарь (он не пуст!).
  7. Наконец, мы выводим, сколько студентов осталось в нашем словаре.

Когда вы выполните этот код, вы увидите все эти операции в действии!

И это все, друзья! Вы только что сделали свои первые шаги в мире Java словарей. Помните, практика совершенства, так что не бойтесь экспериментировать с различными ключами и значениями. Кто знает? Может быть, вы создадите следующее великое приложение с использованием словарей!

Счастливого кодирования, и пусть ваши словари всегда будут хорошо организованы!

Credits: Image by storyset