본문 바로가기

JAVA/복습

Java - Map

Map

Map은 key와 value를 쌍으로 데이터를 저장하는 자료구조

key를  이용해서 value를 찾을 수 있도록 설계되어 있기 때문에

key는 중복될 수 없고, 값은 중복될 수 있다.

 

 


Map 인터페이스를 구현하는 클래스를 사용하는 방법


Map생성
키와 밸류도 제너릭을 이용해서 값을 지정할 수 있다.

Map<String, String> map = new HashMap<>();

 

이 Map에는 값을 저장할 때, 키와 밸류가 쌍으로 저장되어야 하기 때문에  put() 사용

map.put("001", "KIM");
map.put("002", "HONG");
map.put("003", "JIM");

 

같은 키 값은 중복된 값은 안된다.

 

- 체크해보기

map.put("001", "kang");


맵에 들어있는 데이터의 저장되는 자료의 수가 몇 개인지 알 수 있다.

System.out.println(map.size()); // 출력 : 3



어떤 데이터가 있는지 확인해보기

1. 하나씩 꺼내기
get 메소드를 이용해서 이때, 꺼내고 싶은 key값을 넣어주면 된다.

System.out.println(map.get("001")); // 출력 : kang

 

-- kang으로 출력되는 이유
    같은 키로 값이 또 들어왔을 때 맵은 기존에 있었던 값을 새로 들어온 값으로 바꾼다.
    그래서 마지막으로 들어온 'kang'이라는 값이 저장되어 있는 것을 알 수 있다.

2. 맵이 가지고 있는 모든 key값을 꺼내고 싶다
     keySet() - 키만 꺼내서 Set자료구조에 넣어주는 것이다.
     keySet의 리턴 타입이 set이었으므로 Set이라고 사용.
     Set에 담을 때 모두 String타입이므로 제너릭 해주면 된다.

Set<String> key = map.keySet();


key를 갖고 있는 Set을 Iterator를 이용해서 꺼내 주면
key 값들을 모두 차례대로 꺼낼 수 있다.
key값을 이용하면 우리는 value값을 얻어낼 수 있다.

 

key가 가지고 있는 iterator메소드를 이용

Iterator<String> ite = key.iterator();
 while(ite.hasNext()){
   String keys = ite.next();
  
  // 키 값을 받아서 맵이 가지고 있는 get이라는 메소들 이용해서 key를 넣어준다.
   String value = map.get(keys);
   System.out.println(keys + ": " + value);
 }

-- 전체코드

package java03.day04;

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

public class MapExam {
    public static void main(String[] args) {

        // Map생성
        Map<String, String> map = new HashMap<>();

        // put()
        map.put("001", "KIM");
        map.put("002", "HONG");
        map.put("003", "JIM");

        map.put("001", "kang");

        System.out.println(map.size()); // 출력 : 3 -

        System.out.println(map.get("001")); // 출력 :  kang

        Set<String> key = map.keySet();

        Iterator<String> ite = key.iterator();
        
        while(ite.hasNext()){
            String keys = ite.next();

            String value = map.get(keys);
            System.out.println(keys + ": " + value);
        }
    }
}

 

-- 출력 결과

'JAVA > 복습' 카테고리의 다른 글

클래스와 인스턴스  (0) 2021.10.22
클래스  (0) 2021.10.22
Java - List  (0) 2021.10.22
Java - Set 실습  (0) 2021.10.22
Java - Set  (0) 2021.10.22