HashMap<K, V> 컬렉션은 '키(key)'와 '값(value)'의 쌍으로 구성되는 요소를 다룬다.
HashMap<String, String> h = new HashMap<String, String>(); //해시맵 객체 생성
h.put("apple", "사과"); // "apple" 키와 "사과" 값의 쌍을 h에 삽입
String kor = h.get("apple"); // "apple" 키의 값 검색. kor는 "사과"
| 메소드 | 설명 |
|---|---|
| void clear() | HashMap의 모든 요소 삭제 |
| boolean containsKey(Object key) | 지정된 키(key)를 포함하고 있으면 true 리턴 |
| boolean containsValue(Object value) | 하나 이상의 키를 지정된 값(value)에 매핑시킬 수 있으면 true 리턴 |
| V get(Object key) | 지정된 키(key)에 매핑되는 값 리턴. 키에 매핑되는 어떤 값도 없으면 null 리턴 |
| boolean isEmpty() | HashMap이 비어 있으면 true 리턴 |
| Set<K Key, V value> | HashMap에 있는 모든 키를 담은 Set 컬렉션 리턴 |
| V remove(Object key) | key와 value를 매핑하여 HashMap에서 삭제 |
| int size() | HashMap에 포함된 요소의 개수 리턴 |
해시맵은 HashMap<K, V>에서 '키(key)'와 '값(value)'으로 사용할 구체적인 타입을 지정하여 생성한다.
HashMap<String, String> h = new HashMap<String, String>();
요소를 삽입할 때는 put() 메소드에 '키'와 '값'을 인자로 전달.
h.put("cloud", "클라우드"); // "cloud"가 키이고, "클라우드"는 값이다.
h.put("jack", "잭");
h.put("sephiroth", "세피로스");
String kor1 = h.get("jack"); // kor1 = "잭"
String kor2 = h.get("sephiroth"); //kor2 = "세피로스"
만약, 해시맵에 없는 '키'로 get()을 호출하면 null 값을 리턴
String kor3 = h.get("tifa"); // kor3 = null
'키'를 이용하여 요소를 삭제할 때 다음과 같이 remove() 메소드를 이용.
h.remove("sephiroth"); // put("sephiroth", "세피로스")라고 삽입한 요소 삭제
size() 메소드를 호출하면 된다.
int n = h.size(); // 현재 h 내에 있는 요소의 개수 리턴
HashMap의 keySet() 메소드는 모든 키를 Set 컬렉션 객체로 만들어 리턴한다.
Set<String> keys = h.keyset(); // 해시맵 h에 있는 모든 키를 Set 컬렉션으로 리턴
Itertator<String> it = keys.iterator(); // Set에서 문자열을 검색할 수 있는 Iterator 리턴
while(it.hashNext()) {
String key = it.next(); // 키
String value = h.get(key); // 값
System.out.println("(" + key + "," + value + ")"); // 키와 값의 쌍 출력
import java.util.*;
public class Main {
public static void main(String[] args) {
// 파판 캐릭터와 한글 단어의 쌍을 저장하는 HashMap 컬렉션 생성
HashMap<String, String> dic = new HashMap<String, String>();
// 3개의 (key, value) 쌍을 dic 저장
dic.put("cloud", "클라우드");
dic.put("jack", "잭");
dic.put("sephiroth", "세피로스");
// dic 해시맵에 들어 있는 모든 (key, value) 쌍 출력
Set<String> keys = dic.keySet(); // 모든 키를 Set 컬렉션에 받아옴
Iterator<String> it = keys.iterator(); // Set에 접근하는 Iterator 리턴
while(it.hasNext()) {
String key = it.next(); // 키
String value = dic.get(key); // 값
System.out.println("(" + key + "," + value + ")");
}
System.out.println();
// 사용자로부터 파판 입력받고 한글 단어 검색
Scanner scanner = new Scanner(System.in);
for(int i=0; i<3; i++) {
System.out.print("찾고 싶은 단어는?");
String eng = scanner.next();
// 해시맵에서 '키' eng의 '값' kor 검색
String kor = dic.get(eng);
if(kor == null) System.out.println(eng + "는 없는 단어 입니다.");
else System.out.println(kor);
}
}
}

ps. BOJ를 풀자 ㅜㅅㅜ 이제 점점 어렵워지기 시작했어요, 살려주세요 ㅜㅁㅜ