1 분 소요

HashMap 선언

import java.util.HashMap; // ✅

HashMap<String, Integer> hm1 = new HashMap<String, Integer>(); // (String, Integer) 쌍의 HashMap생성
HashMap<String, String> hm2 = new HashMap<String, String>(); // (String, String) 쌍의 HashMap생성
HashMap<String,String> hm3 = new HashMap<>(); // new에서 타입 파라미터 생략가능
HashMap<String,String> hm4 = new HashMap<>(hm1); // hm1의 모든 값을 가진 HashMap생성
HashMap<String,String> hm5 = new HashMap<>(10); // 초기 용량(capacity)지정
HashMap<String,String> hm6 = new HashMap<>(10, 0.7f); // 초기 capacity,load factor지정
HashMap<String,String> hm7 = new HashMap<String,String>(){{ // 초기값 지정
    put("a","b");
}};

스크린샷 2023-07-04 오후 12 18 43

값 추가

HashMap<Integer,String> hm = new HashMap<>(); // new에서 타입 파라미터 생략가능
hm.put(1, "사과"); // 값 추가
hm.put(2, "바나나");
hm.put(3, "포도");

만약 입력되는 키 값이 HashMap 내부에 존재한다면 기존의 값은 새로 입력되는 값으로 대치됩니다.

값 삭제

HashMap<Integer,String> hm = new HashMap<Integer,String>(){{ // 초기값 지정
    put(1, "사과");
    put(2, "바나나");
    put(3, "포도");
}};
hm.remove(1); // key가 1인 요소 제거
hm.clear(); // 모든 요소 제거

값 출력 (순회)

⚠️ 넣은 순서대로의 출력을 보장하지 않는다 !!

for 이용

✅ for: 순회중 중단 가능

방법 1 - entrySet() 활용

for (HashMap.Entry<String, Integer> entry : hm.entrySet()) {
    System.out.println(entry.getKey() + ":" + entry.getValue());
}

방법 2 - keySet() 활용

for (String key : hm.keySet()) {
    System.out.println(key); // key 출력
    System.out.println(key + ":" + hm.get(key)); // key를 알면 value까지 출력 가능
}

방법 3 - valuees() 활용

for (String val : hm.values()) {
    System.out.println(val); // value 출력
}

Iterator 이용

방법 1 - keySet().iterator()

import java.util.HashMap;
import java.util.Iterator;

Iterator<String> keys = map.keySet().iterator();

while(keys.hasNext()){
	String strKey = keys.next();
	System.out.println(strKey + ":" +  map.get(strKey));
}

방법 2 - entrySet().iterator()

🌟 이 방법이 빠르다고 한다!

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

Iterator<Entry<Integer, String>> entries = map.entrySet().iterator();

while(entries.hasNext()){
    Map.Entry<Integer, String> entry = entries.next();
    System.out.println(entry.getKey() + ":" + entry.getValue());
}

forEach 이용

⚠️ forEach: 순회중 중단 불가

Java 1.8 이상

hm.forEach((key, val) -> {
  System.out.println(key + ":" + val);
  // break 혹은 return 문을 넣으면 에러가 발생한다 !!
});

그 외 메서드

getOrDefault(): 찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환하는 메서드

import java.util.HashMap;

String [] alphabet = { "A", "B", "C" ,"A"};
HashMap<String, Integer> hm = new HashMap<>();

for(String key : alphabet) {
    hm.put(key, hm.getOrDefault(key, 0) + 1);
}

System.out.println("결과 : " + hm); // {A=2, B=1, C=1}

size()

HashMap<Integer,String> hm = new HashMap<>();
hm.put(1, "사과");
hm.put(2, "바나나");
hm.put(3, "포도");

System.out.println(hm.size()); // 3

참고



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기

태그:

카테고리:

업데이트: