Рубрики
Без рубрики

Как Создать Словарь На Java

Что Такое Словарь Java? Определение ORACLE выглядит следующим образом: “Класс Dictionary… С тегами java, codenewbie, 100daysofcode, tutorial.

Что Такое Словарь Java?

Определение ORACLE выглядит следующим образом: “Класс Dictionary – это абстрактный родительский элемент любого класса, такого как Hashtable, который сопоставляет ключи со значениями. Каждый ключ и каждое значение – это объект. В любом одном объекте словаря каждый ключ связан не более чем с одним значением. При наличии словаря и ключа можно выполнить поиск связанного элемента. Любой ненулевой объект может быть использован как ключ и как значение.”

Когда вы думаете о повседневных (книжных) словарях, что приходит на ум? Как вы используете обычные словари при поиске информации? Словари позволяют нам искать значения слов, которые мы можем понимать или не понимать полностью. Итак как словари функционируют в Java? На самом деле точно так же. Мы можем получить доступ к сохраненным значениям определенных ключей в наших словарях Java. Ого, неужели я потерял тебя? Подумай об этом вот так…

Наше слово, значение которого мы хотим знать, – это наш “ключ” в Java. Значение этого слова или определения – это наша “ценность”. В Java мы можем хранить информацию с помощью чего-то, что называется ‘пары ключ: значение’ и эти пары ключ-значение непосредственно напоминают словарь. В этом уроке я покажу вам, как я создал англо-немецкий словарь на Java. Я оставлю ссылки на мой репозиторий GitHub и другие важные ресурсы ниже. Давайте приступим к кодированию.

Настройка проекта

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

Как создать словарь Java

import java.util.HashMap;
import java.util.Map;

// This program is an English to German dictionary created in Java utilizing the abstract Class "Dictionary" using a HashMap

public class dictionary {
    public static void main(String[] args) {
        // English to German Dictionary
        Map englishToGermanDictionary = new HashMap(); // creating a dictionary and setting both keys and values to String, could use any data type here. 
    }
}

Добавление Значений В Словарь

Теперь, когда у нас есть экземпляр нашего проекта, давайте добавим несколько пар ключ-значение. Поскольку я использую класс dictionary для создания буквального англо-немецкого словаря, мои пары ключ-значение будут строками как с английскими, так и с немецкими фразами. Мы можем сделать все это, вот так.

Создание пар ключ-значение в Java

import java.util.HashMap;
import java.util.Map;

// This program is an English to German dictionary created in Java utilizing the abstract Class "Dictionary" using a HashMap

public class dictionary {
    public static void main(String[] args) {
        // English to German Dictionary
        Map englishToGermanDictionary = new HashMap(); // creating a dictionary and setting both keys and values to String, could use any data type here.
        englishToGermanDictionary.put("I'd like to practice German.", "Ich mochte Deutsch uben."); // adding English to German Strings to the dictioonary
        englishToGermanDictionary.put("Could you repeat that?", "Konnten Sie das bitte wiederholen?");
        englishToGermanDictionary.put("Do you speak English?", "Sprechen Sie English?");
        englishToGermanDictionary.put("Where is the bus stop?", "Wo ist die Bushaltestelle?");
        englishToGermanDictionary.put("How much is this?", "Wie viel kostet das?");
        englishToGermanDictionary.put("Can I try this on?", "Kann ich es anprobieren?");
        englishToGermanDictionary.put("Could you take a photo of me?", "Konnten Sie ein Foto von mir machen?");
        englishToGermanDictionary.put("My name is ...", "Mine Name ist...");
        englishToGermanDictionary.put("Nice to meet you.", "Angenehm.");
    }
}

Получение Значений Из Словаря

Теперь, когда у нас есть все наши строки, введенные в словарь, как нам их извлечь? Я так рада, что ты спросил. Старый добрый саут спешит на помощь! Мы также могли бы просто напечатать весь ключ или, возможно, все значения. Хорошо, на самом деле есть несколько способов получить значения из словаря. Поэтому я решил продемонстрировать некоторые из них ниже.

Получение Ключей и Значений Из Словаря

package ArrayStringPractice;
import java.util.HashMap;
import java.util.Map;

// This program is an English to German dictionary created in Java utilizing the abstract Class "Dictionary" using a HashMap

public class dictionary {
    public static void main(String[] args) {
        // English to German Dictionary
        Map englishToGermanDictionary = new HashMap(); // creating a dictionary and setting both keys and values to String, could use any data type here.
        englishToGermanDictionary.put("I'd like to practice German.", "Ich mochte Deutsch uben."); // adding English to German Strings to the dictioonary
        englishToGermanDictionary.put("Could you repeat that?", "Konnten Sie das bitte wiederholen?");
        englishToGermanDictionary.put("Do you speak English?", "Sprechen Sie English?");
        englishToGermanDictionary.put("Where is the bus stop?", "Wo ist die Bushaltestelle?");
        englishToGermanDictionary.put("How much is this?", "Wie viel kostet das?");
        englishToGermanDictionary.put("Can I try this on?", "Kann ich es anprobieren?");
        englishToGermanDictionary.put("Could you take a photo of me?", "Konnten Sie ein Foto von mir machen?");
        englishToGermanDictionary.put("My name is ...", "Mine Name ist...");
        englishToGermanDictionary.put("Nice to meet you.", "Angenehm.");
        // Retrieve the values by acessing the keys
        System.out.println(englishToGermanDictionary.get("I'd like to practice German.")); // using the keys to access the German translation
        System.out.println(englishToGermanDictionary.get("Could you repeat that?"));
        System.out.println(englishToGermanDictionary.get("Do you speak English?"));
        System.out.println(englishToGermanDictionary.get("Where is the bus stop?"));
        System.out.println(englishToGermanDictionary.get("How much is this?"));
        System.out.println(englishToGermanDictionary.get("Can I try this on?"));
        System.out.println(englishToGermanDictionary.get("Could you take a photo of me?"));
        System.out.println(englishToGermanDictionary.get("My name is ..."));
        System.out.println(englishToGermanDictionary.get("Nice to meet you."));
        System.out.println(englishToGermanDictionary.keySet()); // will print out  all of the keys
        System.out.println(englishToGermanDictionary.values()); // will print out all values

    }
}

Что Такого Замечательного В Словаре

Хорошо, теперь, когда мы точно увидели, как работает Java dictionary и как его использовать (на самом базовом уровне), держу пари, вам интересно, в чем тут дело. Есть несколько преимуществ использования хэш-карты над массивом. Во-первых, массивы имеют фиксированный размер, а хэш-карты – нет. Таким образом, мы могли бы на самом деле просто продолжать добавлять значения к этой хэш-карте. Поиск прост, пока у нас есть ключ, и в большинстве случаев равен 0 (1) или постоянному времени, в худшем случае 0 (n). Еще одна хорошая вещь заключается в том, что можно использовать большинство типов данных. Это означает, что мы также могли бы использовать int или даже логические значения с нашими хэш-картами. Итак, каковы же недостатки? Их несколько, на самом деле мы не можем контролировать, в каком порядке хранятся ключи. С помощью массивов наши данные будут проиндексированы, и их будет легко искать. Все, что нам понадобится, – это индекс. Но с хэш-картой мы на самом деле понятия не имеем, где будет храниться информация. Я связал статью ниже, в которой объясняется, как хэш-карты на самом деле строятся поверх массивов.

Вывод

Вот оно, у вас есть. Словари просты и понятны и могут быть реализованы для хранения пар ключ-значение. Доступ к ключам и значениям можно получить различными способами в зависимости от того, для чего они нам нужны. Пожалуйста, не путайте хэш-карты с хэш-таблицами в Java, потому что на самом деле они разные. Я оставлю ссылку ниже на статью, в которой это объясняется более подробно. Ну, вот и все. Что вы думаете о моем англо-немецком словаре на Java? Оставьте мне комментарий или <3.

Прощай, береги себя.

Кодовая база 😉

Ссылки —>

Документы ORACLE https://docs.oracle.com/javase/8/docs/api/java/util/Dictionary.html

Мой GitHub https://github.com/kodebae/Data-Structures-And-Algorithms-In-Java/blob/main/src/ArrayStringPractice/dictionary.java

Хэш-карты построены на массивах? Хэш-карты построены на массивах?

Разница между хэш-картами и хэш-таблицами https://www.geeksforgeeks.org/hashmap-treemap-java/

Видео, объясняющее хэш-карты https://www.youtube.com/watch?v=c3RVW3KGIIE

Оригинал: “https://dev.to/kodebae/how-to-create-a-dictionary-in-java-7m0”