Java 사전
Java 언어에서 Dictionary는 Map
인터페이스라는 데이터 구조를 사용하여 표현됩니다. Map
데이터 구조는 데이터를 키-값 쌍으로 표시하는 데 사용됩니다. Map
은 모든 키와 해당 값을 추적하는 인터페이스입니다. 사용자는 고유 키를 기반으로 값을 검색할 수 있습니다. Map
인터페이스에는 다음 속성이 있습니다.
Map
에 있는 모든 키는 고유합니다.- 하나 이상의 값에 해당하는 고유 키가 있을 수 있습니다.
- 키는 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"));
}
}
Map
은 Collection
프레임워크 계층과 별도로 별도로 존재하는 인터페이스입니다.
Map
은 java.util
패키지에 있으며 키가 값에 매핑되는 방법을 보여줍니다. 지도에는 다음과 같은 여러 구현이 있을 수 있습니다.
HashMap
LinkedHashMap
Hashtable
각각의 사용법은 구현에 대한 사용자의 요구에 따라 달라질 수 있습니다.
위의 코드 조각에서 HashMap
구현이 사용됩니다. Java 언어에서 널리 사용되는 기본 클래스입니다. 세 가지 유형의 차이점은 아래에 정의되어 있습니다.
HashMap
은 Java 1.2 버전에 도입된 반면, Hashtable
은 레거시 클래스입니다. 스레드로부터 안전하므로 여러 스레드 간에 동시 작업이 허용되어 코드의 일관성을 유지합니다. 그러나 HashMap
은 스레드로부터 안전하지 않으며 동시성을 허용하지 않습니다.
HashMap
의 스레드로부터 안전한 특성으로 인해 Hashtable
보다 성능이 더 빠릅니다. 또한 HashMap
은 페일 패스트이며 해당 인스턴스가 한 번에 여러 스레드에서 조작될 때 ConcurrencyException
이 발생합니다. 이와 대조적으로 Hashtable
은 안전해 보입니다. LinkedHashMap
의 사용 사례는 사용자가 삽입 주문을 저장하려는 경우에 있습니다.
Map
인스턴스는 위의 코드 블록에서 HashMap
클래스를 사용하여 생성됩니다. get
및 put
과 같은 작업은 인스턴스에서 특정 값을 저장하고 검색하는 데 사용됩니다. put
메소드는 키와 값인 두 개의 매개변수를 사용합니다.
내부적으로 키는 containsKey()
함수를 사용하여 맵 개체에 있는 경우 먼저 평가됩니다. true로 평가되면 키의 현재 값이 새 값으로 바뀝니다. 정의된 작업이 주어진 키를 사용하여 Map
에서 지원되지 않으면 메서드에서 UnsupportedOperationException
이 발생합니다.
키 또는 값이 키 저장을 방지하는 경우 ClassCastException
, 지정된 키 또는 값이 null
이고 Map
이 null
키 또는 값을 허용하지 않는 경우 NullPointerException
. 키 또는 값의 일부 속성으로 인해 Map
에 저장되지 않는 경우 IllegalArgumentException
.
키가 Map
에 삽입되면 get
기능을 사용하여 검색됩니다. get
함수는 고유 키인 단일 매개변수를 사용합니다. 키가 부적절하거나 지정된 키가 null
인 경우 ClassCastException
및 NullPointerException
이 발생합니다.
아래는 HashMap
클래스를 사용한 맵 인터페이스의 출력입니다.
Dictionary in Java Using HashMap Letters with alphabetical Order with key B
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