Java에서 사전을 만드는 방법



자바 사전이란 무엇입니까?



ORACLE 정의는 다음과 같습니다.
"Dictionary 클래스는 키를 값에 매핑하는 Hashtable과 같은 모든 클래스의 추상 부모입니다. 모든 키와 모든 값은 개체입니다. 하나의 Dictionary 개체에서 모든 키는 최대 하나의 값과 연결됩니다. Dictionary가 제공됩니다. 및 키, 연결된 요소를 조회할 수 있습니다. null이 아닌 개체는 키 및 값으로 사용할 수 있습니다."

일상적인 (책과 같은) 사전에 대해 생각할 때 무엇이 ​​떠오릅니까? 물건을 찾을 때 일반 사전을 어떻게 사용합니까? 사전은 우리가 완전히 이해할 수도 있고 이해하지 못할 수도 있는 단어의 의미를 찾아볼 수 있게 해줍니다. 그렇다면 사전은 Java에서 어떻게 작동합니까? 실제로 똑같은 방식입니다. Java 사전 내에서 특정 키의 저장된 값에 액세스할 수 있습니다. 내가 당신을 잃었나요? 이렇게 생각해보세요...

우리가 그 의미를 알고자 하는 단어는 Java에서 '키'입니다. 그 단어의 의미나 정의는 우리의 '가치'입니다. Java에서 우리는 '키:값 쌍'이라는 것을 사용하여 정보를 저장할 수 있으며 이러한 키-값 쌍은 직접적으로 사전을 연상시킵니다. 이 자습서에서는 Java에서 영어-독일어 사전을 만드는 방법을 보여 드리겠습니다. 내 GitHub 리포지토리 및 기타 중요한 리소스에 대한 링크를 아래에 남겨둘 것입니다. 코딩을 해봅시다.

프로젝트 설정



HashMap을 사용하여 사전을 생성한 다음 영어 및 독일어 문자열 값을 모두 보유하도록 사전을 설정해야 합니다. 사전에 어떤 종류의 값이 있어야 하는지 생각해 보십시오. HashMap 클래스와 Map 인터페이스를 가져오는 것을 잊지 마십시오. 우리는 이런 식으로 모든 것을 할 수 있습니다 ...

How to create a Java dictionary



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<String,String> englishToGermanDictionary = new HashMap<String,String>(); // creating a dictionary and setting both keys and values to String, could use any data type here. 
    }
}



사전에 값 추가



이제 프로젝트가 인스턴스화되었으므로 몇 가지 키-값 쌍을 추가해 보겠습니다. 사전 클래스를 사용하여 문자 그대로의 영어-독일어 사전을 만들고 있기 때문에 내 키-값 쌍은 영어와 독일어 구가 모두 포함된 문자열이 됩니다. 이런 식으로 모든 것을 할 수 있습니다.

Creating key-value pairs in 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<String,String> englishToGermanDictionary = new HashMap<String,String>(); // 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 dictionary
        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.");
    }
}



사전에서 값 가져오기



이제 모든 문자열을 사전에 입력했으므로 문자열을 어떻게 꺼낼까요? 물어봐주셔서 정말 기쁩니다. 구조에 좋은 올 'sout'! 모든 키 또는 모든 값을 인쇄할 수도 있습니다. 좋습니다. 실제로 사전에서 값을 가져오는 몇 가지 방법이 있습니다. 그래서 아래에서 몇 가지를 시연하기로 결정했습니다.

Getting Keys and Values Out Of A Dictionary



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<String,String> englishToGermanDictionary = new HashMap<String,String>(); // 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 사전이 어떻게 작동하고 어떻게 사용하는지(매우 기본적인 수준에서) 정확히 보았으므로 무엇이 중요한지 궁금하실 것입니다. 배열보다 HashMap을 사용하면 몇 가지 이점이 있습니다. 우선 배열은 크기가 고정되어 있고 HashMaps는 그렇지 않습니다. 따라서 우리는 사실 이 HashMap에 값을 계속 추가할 수 있습니다. 조회는 키가 있는 한 쉽고 대부분의 경우 0(1) 또는 일정한 시간, 최악의 경우 0(n)입니다. 또 다른 좋은 점은 대부분의 데이터 유형을 사용할 수 있다는 것입니다. 즉, HashMaps에서도 int 또는 부울을 사용할 수 있습니다. 그래서 단점은 무엇입니까? 실제로 키가 저장되는 순서를 제어할 수 없는 몇 가지가 있습니다. 배열을 사용하면 데이터가 인덱싱되어 쉽게 조회할 수 있습니다. 필요한 것은 색인뿐입니다. 그러나 HashMap을 사용하면 실제로 정보가 어디에 저장될지 알 수 없습니다. HashMaps가 실제로 배열 위에 구축되는 방법을 설명하는 기사를 아래에 링크했습니다.

결론



당신은 그것을 가지고 있습니다. 사전은 쉽고 간단하며 키-값 쌍을 저장하도록 구현할 수 있습니다. 키와 값은 필요한 작업에 따라 다양한 방식으로 액세스할 수 있습니다. HashMaps와 Java의 HashTables는 실제로 다르기 때문에 혼동하지 마십시오. 아래 링크를 아래에 더 자세히 설명하는 기사 링크를 남겨두겠습니다. 글쎄, 그게 다야. Java에서 내 영어-독일어 사전에 대해 어떻게 생각하세요? 나에게 의견을 남겨주세요 또는 <3.

안녕히 계세요.

코드배 ;)

링크 --->



ORACLE Docs
https://docs.oracle.com/javase/8/docs/api/java/util/Dictionary.html

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

HashMaps are built on Arrays?
https://www.interviewcake.com/concept/java/hash-map

Difference between HashMaps and HashTables
https://www.geeksforgeeks.org/hashmap-treemap-java/

A video Explaining HashMaps

좋은 웹페이지 즐겨찾기