Java 사전

Rashmi Patidar 2023년10월12일
Java 사전

Java 언어에서 Dictionary는 Map 인터페이스라는 데이터 구조를 사용하여 표현됩니다. Map 데이터 구조는 데이터를 키-값 쌍으로 표시하는 데 사용됩니다. Map은 모든 키와 해당 값을 추적하는 인터페이스입니다. 사용자는 고유 키를 기반으로 값을 검색할 수 있습니다. Map 인터페이스에는 다음 속성이 있습니다.

  1. Map에 있는 모든 키는 고유합니다.
  2. 하나 이상의 값에 해당하는 고유 키가 있을 수 있습니다.
  3. 키는 null이 아닌 엔터티입니다.

아래는 자바 언어로 사전 또는 Map 의 사용을 보여주는 코드 블록입니다.

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

public class Dictionary {
  public static void main(String[] args) {
    System.out.println("Dictionary in Java");
    System.out.println("Using HashMap ");
    Map<String, String> map = new HashMap<>();
    map.put("1", "Letters with alphabetical Order with key A");
    map.put("2", "Letters with alphabetical Order with key B");
    System.out.println(map.get("2"));
  }
}

MapCollection 프레임워크 계층과 별도로 별도로 존재하는 인터페이스입니다.

Mapjava.util 패키지에 있으며 키가 값에 매핑되는 방법을 보여줍니다. 지도에는 다음과 같은 여러 구현이 있을 수 있습니다.

  1. HashMap
  2. LinkedHashMap
  3. Hashtable

각각의 사용법은 구현에 대한 사용자의 요구에 따라 달라질 수 있습니다.

위의 코드 조각에서 HashMap 구현이 사용됩니다. Java 언어에서 널리 사용되는 기본 클래스입니다. 세 가지 유형의 차이점은 아래에 정의되어 있습니다.

HashMap은 Java 1.2 버전에 도입된 반면, Hashtable은 레거시 클래스입니다. 스레드로부터 안전하므로 여러 스레드 간에 동시 작업이 허용되어 코드의 일관성을 유지합니다. 그러나 HashMap은 스레드로부터 안전하지 않으며 동시성을 허용하지 않습니다.

HashMap의 스레드로부터 안전한 특성으로 인해 Hashtable보다 성능이 더 빠릅니다. 또한 HashMap은 페일 패스트이며 해당 인스턴스가 한 번에 여러 스레드에서 조작될 때 ConcurrencyException이 발생합니다. 이와 대조적으로 Hashtable은 안전해 보입니다. LinkedHashMap의 사용 사례는 사용자가 삽입 주문을 저장하려는 경우에 있습니다.

Map 인스턴스는 위의 코드 블록에서 HashMap 클래스를 사용하여 생성됩니다. getput과 같은 작업은 인스턴스에서 특정 값을 저장하고 검색하는 데 사용됩니다. put 메소드는 키와 값인 두 개의 매개변수를 사용합니다.

내부적으로 키는 containsKey() 함수를 사용하여 맵 개체에 있는 경우 먼저 평가됩니다. true로 평가되면 키의 현재 값이 새 값으로 바뀝니다. 정의된 작업이 주어진 키를 사용하여 Map에서 지원되지 않으면 메서드에서 UnsupportedOperationException이 발생합니다.

키 또는 값이 키 저장을 방지하는 경우 ClassCastException, 지정된 키 또는 값이 null이고 Mapnull 키 또는 값을 허용하지 않는 경우 NullPointerException. 키 또는 값의 일부 속성으로 인해 Map에 저장되지 않는 경우 IllegalArgumentException.

키가 Map에 삽입되면 get 기능을 사용하여 검색됩니다. get 함수는 고유 키인 단일 매개변수를 사용합니다. 키가 부적절하거나 지정된 키가 null인 경우 ClassCastExceptionNullPointerException이 발생합니다.

아래는 HashMap 클래스를 사용한 맵 인터페이스의 출력입니다.

Dictionary in Java Using HashMap Letters with alphabetical Order with key B
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn