HashMap은 Map의 인터페이스를 구현하는 대표적인 Map 컬렉션입니다. HashMap에서 키로 사용할 객체는, hashCode( )와 equals( ) 메서드를 오버라이드 하여 동등 객체가 되는 조건을 정해야 합니다. 쉽게 설명하자면, 키는 유니크 값이기 때문에 중복으로 존재할 수 없기 때문이죠. 키가 같다면 이는 동일한 Entry로 취급해야 하기 때문입니다.
같은 객체로 판단하는 프로세스는 다음과 같습니다.
1. 우선, hashCode( )의 리턴 값이 같으면 equals( )의 리턴 값을 점검합니다.
> 만일 hashCode( )의 리턴 값이 다르면 이는 즉시 다른 키로 인식합니다.
2. equals( )의 리턴 값까지 true라면, 이는 같은 키로 판정을 완료합니다.
> 만일 false가 리턴되면 이는 다른 키로 인식합니다.
일반적으로 key 타입은 String을 많이 사용합니다. String은 문자열 자체가 같을 경우, 동등 객체로 취급될 수 있도록 hashCode( )와 equals( ) 메서드가 오버라이드 되어 있습니다.
HashMap을 생성하기 위해서는, key의 타입과 value의 타입을 파라미터로 전달하고 기본 생성자를 호출하면 됩니다.
Map<K, V> map = new HashMap<K, V>();
여기서 key, value의 값의 타입은 기본 타입을 사용할 수 없습니다(byte, short, int, float, double, boolean, char). 클래스 및 인터페이스 타입만 가능하다는 점을 주의하세요.
예를 들어 key는 String 타입, value는 Integer 타입을 사용하는 경우는 다음과 같이 생성합니다.
Map<String, Integer> map = new HashMap<String, Integer>();
이번 예제에서는 이름을 key로 사용하고 점수를 value로 사용하는 HashMap을 사용하는 예제를 작성해 보겠습니다.
import java.util.*;
public class ExampleMain {
public static void main(String[] args) {
//Map 컬렉션의 생성
Map<String, Integer> map = new HashMap<String, Integer>();
//객체 저장(중복 key 사용)
map.put("SWINGS", 90);
map.put("DEAN", 50);
map.put("BLACKNUT", 67);
map.put("DEAN", 12);
System.out.println("총 Entry 개수: " + map.size());
//key로 객체의 value 찾아내기
System.out.println("\tDEAN : " + map.get("DEAN"));
System.out.println();
}
}
/* 출력
총 Entry 개수: 3
DEAN : 12
*/
HashMap의 예제는 다음 아티클에서 계속 이어서 살펴보겠습니다.
'Programming > JAVA' 카테고리의 다른 글
컬렉션 프레임워크(4) - Map 컬렉션 3 : Hashtable (0) | 2023.12.14 |
---|---|
컬렉션 프레임워크(4) - Map 컬렉션 2 : HashMap[2/2] (0) | 2023.12.10 |
컬렉션 프레임워크(4) - Map 컬렉션 1 : Map의 개념[2/2] (0) | 2023.12.01 |
컬렉션 프레임워크(4) - Map 컬렉션 1 : Map의 개념[1/2] (1) | 2023.11.30 |
컬렉션 프레임워크(3) - Set 컬렉션 2 : HashSet [2/2] (0) | 2023.11.27 |