Data Structure

[Java] Hashmap이란?

두번째헌신짝 2022. 8. 26. 16:03

Hashmap(해시맵)이란?

Hashmap(해시맵)은 맵 인터페이스를 구현한 대표적인 map 컬렉션이다.

맵 인터페이스를 상속하기 있기에 map의 성질을 그대로 가지고 있다.

 

map은 키와 값으로 구성된 entry 객체를 저장하는 구조를 가지고 있는 자료구조인데,

여기서 키와 값은 모두 객체이다.

값은 중복 저장될 수 있지만 키는 중복 저장될 수 없다.

만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치된다.

 

해시맵은 이름 그대로 해싱을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 지닌다.

해시맵은 내부에 Key와 Value를 저장하는 자료 구조이다.

해시맵은 해시 함수를 통해 Key와 Value가 저장되는 위치를 결정하므로, 사용자는 그 위치를 알 수 없고, 삽인되는 순서와 들어 있는 위치 또한 관계가 없다.

 

위 내용에 있어서 Hashtable(해시테이블)과 유사점을 지닌다.

 

 

Hashmap(해시맵)의 메소드 종류

  • put(Key, Value) // put 메소드로 HashMap에 키와 값 추가, 입력되는 Key의 값이 HashMap 내부에 존재한다면 기존의 값은 새로 입력되는 값으로 대체 
  • remove(Key) // 해당 Key의 Value 삭제
  • clear() // 모든 Value 삭제
  • get(Key) // 해당 Key의 Value 리턴
  • containsKey(Key) // 해당 Key가 들어있는지 확인, true/false 형태로 리턴
  • containsValue(Value) // 해당 Value가 들어있는지 확인, true/false 형태로 리턴

 

 

Hashmap(해시맵)의 예시 코드

import java.util.*;

public class HashMap_1 {
    public static void main(String[] args) {
        HashMap<Integer, String> login = new HashMap<>(); // HashMap 선언

        login.put(1,"서울"); // put 메소드로 HashMap에 값 추가
        login.put(2,"부산");
        login.put(3,"강릉");
        login.put(4,"대구");
        login.put(5,"광주");
        login.put(3,"대전"); // 입력되는 Key의 값이 HashMap 내부에 존재한다면 기존의 값은 새로 입력되는 값으로 대체

        System.out.println(login);

        login.remove(3); // 해당 key의 value를 삭제

        System.out.println(login);

        //login.clear(); // 모든 value 삭제

        System.out.println(login);

        System.out.println(login.get(4)); // 해당의 key의 value 리턴

        System.out.println(login.containsKey(4)); // 해당 Key가 들어있는지 확인, true/false 형태로 리턴

        System.out.println(login.containsValue("서울")); // 해당 Value가 들어있는지 확인, true/false 형태로 리턴

        Iterator<Integer> keys = login.keySet().iterator();
        while(keys.hasNext()){
            int key = keys.next();
            System.out.println("Key : " + key + " Value : " + login.get(key)); // Iterator을 이용해 전체 출력
        }
    }
}

출력

{1=서울, 2=부산, 3=대전, 4=대구, 5=광주}
{1=서울, 2=부산, 4=대구, 5=광주}
{1=서울, 2=부산, 4=대구, 5=광주}
대구
true
true
Key : 1 Value : 서울
Key : 2 Value : 부산
Key : 4 Value : 대구
Key : 5 Value : 광주

 

'Data Structure' 카테고리의 다른 글

[Java] Hashtable이란?  (0) 2022.08.23
[Java] 연결리스트(LinkedList)란?  (0) 2022.08.20
[Java] ArrayList란? - 첫 번째  (0) 2022.08.19
[Java] 배열(Array)과 리스트(List)의 차이  (1) 2022.08.16
[Java] 배열(Array)이란?  (0) 2022.08.13