최코딩의 개발

열번 째, Map 메서드 정리 본문

JAVA

열번 째, Map 메서드 정리

seung_ho_choi.s 2023. 2. 9. 01:13
728x90

개요: 필자가 해시문제를 풀면서 헷갈리는 메서드들을 정리해봤다.

 

1. getOrDefault() 

 

사용방법

getOrDefault(Object key, DefaultValue);

- key : map의 값을 가져와야하는 기본적인 요소이다. 

- DefaultValue: 지정된 키에서 매핑된 값이 없는 경우 초기화값으로 반환되는 기본값이다. 

 

다음은 예시 코드이다

package test0;

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

public class test3 {
    public static void main(String[] args) {
        String[] num={"1","2","3","1"};
        Map<String,Integer> hashMap=new HashMap();

        for(String key: num){
            hashMap.put(key,hashMap.getOrDefault(key,0)+1);
        }
        System.out.println(hashMap);
        //결과값: {1=2, 2=1, 3=1}
    }
}

 

2. entrySet()

 

사용방법

for(Map.Entry<String,Integer> entrySet: hashMap.entrySet())

- 사용방법은 다음과 같다. map의 내용을 출력시키는 대표적인 메서드 중 하나다.(keyset, iterator)

 

다음은 예시 코드이다.

package test0;

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

public class test3 {
    public static void main(String[] args) {
        String[] num={"1","2","3","1"};
        Map<String,Integer> hashMap=new HashMap();

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

        for(Map.Entry<String,Integer> entrySet: hashMap.entrySet()){
            System.out.println(entrySet.getKey()+":"+entrySet.getValue());
        }
        /*
        결과값:
        1:2
        2:1
        3:1
        */
    }
}

 

3. keySet(), get(key)

 

사용방법

hashMap.keySet()

- map의 저장되있는 key들을 모아서 set의 형태로 반환한다. 

hashMap.get(key)

- key 값을 map으로 전달해 해당 key의 value를 찾아서 값을 반환한다. 

 

다음은 예시 코드이다. 

package test0;

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

public class test3 {
    public static void main(String[] args) {
        String[] num = {"1", "2", "3", "1"};
        Map<String, Integer> hashMap = new HashMap<>();

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

        System.out.println(hashMap.keySet());

        for (String key : hashMap.keySet()) {
            System.out.println(key + ":" + hashMap.get(key));
        }
        /*
        결과값:
        [1, 2, 3]
        1:2
        2:1
        3:1
        */
    }
}

 

4. values()

 

사용방법

hashMap.values

- map의 value 값을 Collection의 형태로 리턴한다.

package test0;

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

public class test3 {
    public static void main(String[] args) {
        String[] num = {"1", "2", "3", "1"};
        Map<String, Integer> hashMap = new HashMap<>();

        for (String key : num) {
            hashMap.put(key, hashMap.getOrDefault(key, 0) + 1);
        }
        System.out.println(hashMap.values());

        for (Integer value : hashMap.values()) {
            System.out.println(value);
        }
        /*
        결과값:
        [2, 1, 1]
        2
        1
        1
        */
    }
}

 

5. forEach 구문

 

람다식을 이용해서 푼 코드이다.

package test0;

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

public class test3 {
    public static void main(String[] args) {
        String[] num = {"1", "2", "3", "1"};
        Map<String, Integer> hashMap = new HashMap<>();

        for (String key : num) {
            hashMap.put(key, hashMap.getOrDefault(key, 0) + 1);
        }
        hashMap.forEach((key, value) ->
                System.out.println(key + ":" + value)
        );
        /*
        결과값:
        1:2
        2:1
        3:1
        */
    }
}

 

느낀점: 헷갈렸던 Map의 메서드들을 정리하니깐 한결 가벼워졌다. 

 

728x90

'JAVA' 카테고리의 다른 글

열 두번째, Priority Queue(우선순위 큐)  (0) 2023.03.02
열 한번째, List 인터페이스 정리  (2) 2023.03.02
아홉번 째, split() 이란?  (0) 2023.01.25
여덟번 째, substring() 이란?  (0) 2023.01.10
일곱번 째, 예외처리란?  (0) 2022.12.19