본문 바로가기

TEAM STUDY/한 권으로 읽는 컴퓨터 구조와 프로그래밍

Java Map 헷갈리는 부분 다시 정리. 😅

728x90
반응형

오늘 스터디 할 때 Map 에 관해 나왔다.
근데 멘붕이 왔었다. 

기본적인 이론은 알고 있지만 오늘 처음 알게된 내용도 있어서
정리 하려 한다.


Hash Map 

 

Map 역시 List 와 마찬가지로 인터페이스다.

Map 인터페이스를 수현한 Map 자료형에는 세 가지가 있다.

  • HashMap
  • LinkedHashMap
  • TreeMap

put

 

Map 을 생성하고 값을 넣는다.

 

import java.util.HashMap;

public class Sample {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("A", "자바");
        map.put("B", "파이썬");
    }
}

get

 

"A" 라는 키를 가진 값을 가지고 온다. 즉, "자바" 가 찍힌다

 

map.get("A")

containKey

 

"A" 라는 Key 값이 있는지 존재 여부를 반환한다.

map.containsKey("A")

remove

 

"A" 라는 Key 를 삭제한 후 삭제한 값을 반환 한다.

 

map.remove("A")

size

 

Map 의 key 값을 반환한다.

 

map.size()

keySet

 

keySet 은 해당 map 에 담긴 모든 Key 들을 반환한다.

 

map.keySet()

 

자료형을 List 로 바꿔서 사용도 가능하다.

 

List<String> keyList = new ArrayList<>(map.keySet());

LinkedHashMap과 TreeMap

Map의 가장 큰 특징은 순서에 의존하지 않고 key로 value를 가져오는데 있다. 

 

하지만 가끔은 Map에 입력된 순서대로 데이터를 가져오고 싶은 경우도 있고 

때로는 입력된 key에 의해 소트된 데이터를 가져오고 싶을 수도 있을 것이다. 

이런경우에는 LinkedHashMap과 TreeMap을 사용하는 것이 유리하다.

  • LinkedHashMap은 입력된 순서대로 데이터를 저장하는 특징을 가지고 있다.
  • TreeMap은 입력된 key의 오름차순 순서로 데이터를 저장하는 특징을 가지고 있다.

728x90
반응형