[Java] Map 관련 Iterate(반복문) 방법

Map 조회에는 3가지 방법이 있다

  1. Iterator
  2. Entry
  3. KeySet
  4. Java8 forEach, Lambda

 

예제1

package com.kyhslam;

import org.junit.Test;

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

public class MapTest {


    @Test
    public void maptest() {
        HashMap<String,String> map = new HashMap<>();

        map.put("A", "TEST");
        map.put("B", "TEST2");
        map.put("C", "TEST3");


        // 방법1: Iterator 사용
        Iterator<String> keys = map.keySet().iterator();
        while(keys.hasNext()) {
            String key = keys.next();
            System.out.println(key + " :: " + map.get(key));
        }
        /*A :: TEST
        B :: TEST2
        C :: TEST3*/
        System.out.println("======================");

        // 방법2 : Entry 사용
        for(Map.Entry<String, String> tmap : map.entrySet()) {
            System.out.println(tmap.getKey() + " :: " + tmap.getValue());
        }
       /* A :: TEST
        B :: TEST2
        C :: TEST3*/

        System.out.println("======================");
        // 방법3 : KeySet 사용
        for(String key : map.keySet()) {
            System.out.println(key + " :: " + map.get(key));
        }
        /*A :: TEST
        B :: TEST2
        C :: TEST3*/
        
        // 방법3 : Java8 forEach, Lambda
        map.forEach((k, v) -> {
            System.out.println(k + " :: " + v);
        });
    }
}

 

예제2

package com.kyhslam.collection;

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

public class mapTest {

    public static void main(String[] args) {

        HashMap<String,String> m = new HashMap<>();
        m.put("A", "사과");
        m.put("B", "바나나");
        m.put("C", "참외");

        
        // key 값만 출력
        Set<String> keySet = m.keySet();
        for(String tempKey : keySet) {
            System.out.println(tempKey);
        }


        // value만 출력
        Collection<String> values = m.values();
        for(String tempValue : values) {
            System.out.println(tempValue);
        }

        // Set을 활용한 출력
        Set<Map.Entry<String,String>> entries = m.entrySet();
        for(Map.Entry<String,String> tempEntry: entries) {
            System.out.println(tempEntry.getKey() + " = " + tempEntry.getValue());
        }

    }
}

'📕 Programing > Java' 카테고리의 다른 글

[Java] SAP RFC 조회  (0) 2021.08.31
[Java] Arryas 기본 사용법  (0) 2021.06.07
[Java] 람다식(Lambda Expression)  (0) 2020.12.01
[Java] 람다식(Lambda Expression) 실습  (0) 2020.07.28
[Java] CPU, Memory 사용량  (0) 2020.07.23

댓글

Designed by JB FACTORY