본문 바로가기
자료구조

[자료구조] HashMap

by eddypark 2023. 11. 9.

- 키와 값으로 구성된 엔트리 객체를 저장하는 자료구조이다.

- key의 중복된 값을 허용하지 않는다.

- NULL 삽입이 가능하다.

- 동기화가 되지 않는다. 순서가 없다.


선언

import java.util.HashMap;

public class HashMapDemo {
    public static void main(String[] arg) {
        HashMap<String, String> map1 = new HashMap<>();
        HashMap<String, String> map2 = new HashMap<>(otherMap); // 다른 컬렉션으로부터 초기화
        HashMap<String, String> map3 = new HashMap<>(0); // 초기 용량 설정
        HashMap<String, String> map4 = new HashMap<>(10, 0, 8f); // 초기 용량 및 load factor 설정
    }
}

값 추가

import java.util.HashMap;

public class HashMapDemo {
    public static void main(String[] arg) {
        HashMap<String, String> map = new HashMap<>(); // new에서 타입 파라미터 생략 가능
        map.put(1, "사과"); // 값 추가
        map.put(2, "바나나");
        map.put(3, "포도");        
    }
}

값 제거

import java.util.HashMap;

public class HashMapDemo {
    public static void main(String[] arg) {
        HashMap<String, String> map = new HashMap<>();{{ // 초기값 지정
            map.put(1, "사과"); // 값 추가
            map.put(2, "바나나");
            map.put(3, "포도");        
        }};
        map.remove(1); // key값 1 제거
        map.clear(); // 모든 값 제거
    }
}

값 조회

import java.util.HashMap;

public class HashMapDemo {
    public static void main(String[] arg) {
        HashMap<String, String> map = new HashMap<>(){{ // 초기값 지정
            map.put(1, "사과");
            map.put(2, "바나나");
            map.put(3, "포도");
        }};
        
        System.out.println(map); // 전체 출력 : {1=사과, 2=바나나, 3=포도}
        System.out.println(map.get(1)); // key값 1의 value얻기 : 사과
        
        // entrySet() 활용
        for (Entry<Integer, String> entry: map.entrySet()) {
            System.out.println("[Key]:" + entry.getKey() + " [Value]:" + entry.getValue());
        }
        
        //[Key]:1 [Value]:사과
        //[Key]:2 [Value]:바나나
        //[Key]:3 [Value]:포도
        
        //KeySet() 활용
        for(Integer i: map.keySet()) { // 저장된 key값 확인
            System.out.println("[Key]:" + i + " [Value]:" + map.get(i));
        }
        //[Key]:1 [Value]:사과
        //[Key]:2 [Value]:바나나
        //[Key]:3 [Value]:포도
    }
}

'자료구조' 카테고리의 다른 글

[자료구조] TreeMap  (0) 2023.11.10
[자료구조] HashTable  (0) 2023.11.09
[자료구조] TreeSet  (0) 2023.11.07
[자료구조] Hash Set  (0) 2023.11.07
[자료구조] Vector  (0) 2023.11.06