코딩 스쿨 Java

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

Java_HashMap Loop

자바에서 HashMap 반복문 사용 (Java HashMap Loop)

자바의 **HashMap**은 키-값 쌍으로 데이터를 저장하는 맵 자료구조입니다. HashMap에 저장된 데이터에 접근하거나 수정할 때, 다양한 방식으로 반복문을 사용할 수 있습니다. 자바에서는 for 반복문, Iterator, 그리고 Stream API를 통해 HashMap을 순회할 수 있습니다. 이 글에서는 HashMap의 키, 값, 또는 키-값 쌍을 순회하는 여러 방법을 다룹니다.

1. for-each 반복문을 사용한 HashMap 순회

1.1 for-each 반복문을 사용하여 키와 값을 순회하는 방법

for-each 반복문을 사용해 HashMap의 **키(key)**와 **값(value)**을 각각 순회할 수 있습니다.

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        // HashMap 선언 및 초기화
        HashMap<String, Integer> map = new HashMap<>();
        map.put("Apple", 100);
        map.put("Banana", 150);
        map.put("Orange", 120);

        // 1. 키(key)만 순회
        System.out.println("키만 출력:");
        for (String key : map.keySet()) {
            System.out.println(key);
        }

        // 2. 값(value)만 순회
        System.out.println("\\\\n값만 출력:");
        for (Integer value : map.values()) {
            System.out.println(value);
        }
    }
}

설명:

  • keySet(): HashMap의 모든 를 반환합니다.
  • values(): HashMap의 모든 을 반환합니다.
  • for-each 반복문을 사용하여 키와 값을 각각 순회할 수 있습니다.

출력:

키만 출력:
Apple
Banana
Orange

값만 출력:
100
150
120

1.2 for-each 반복문을 사용해 키-값 쌍을 순회하는 방법

entrySet() 메서드를 사용하면 HashMap의 **키와 값 쌍(Entry)**을 동시에 순회할 수 있습니다.

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

public class Main {
    public static void main(String[] args) {
        // HashMap 선언 및 초기화
        HashMap<String, Integer> map = new HashMap<>();
        map.put("Apple", 100);
        map.put("Banana", 150);
        map.put("Orange", 120);

        // 키-값 쌍(Entry) 순회
        System.out.println("키-값 쌍 출력:");
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println("키: " + entry.getKey() + ", 값: " + entry.getValue());
        }
    }
}

설명:

  • entrySet(): HashMap의 모든 **키-값 쌍(Entry)**을 반환합니다.
  • *Map.Entry*는 각 엔트리의 에 접근할 수 있는 객체입니다.

출력:

키-값 쌍 출력:
키: Apple, 값: 100
키: Banana, 값: 150
키: Orange, 값: 120

2. Iterator를 사용한 HashMap 순회

  • *Iterator*는 컬렉션을 순회할 때 사용하는 인터페이스로, **HashMap*도 Iterator를 통해 순회할 수 있습니다. 이를 통해 키-값 쌍을 순차적으로 처리할 수 있습니다.

2.1 Iterator를 사용한 HashMap의 키-값 쌍 순회

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

public class Main {
    public static void main(String[] args) {
        // HashMap 선언 및 초기화
        HashMap<String, Integer> map = new HashMap<>();
        map.put("Apple", 100);
        map.put("Banana", 150);
        map.put("Orange", 120);

        // Iterator를 사용해 키-값 쌍 순회
        Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Integer> entry = iterator.next();
            System.out.println("키: " + entry.getKey() + ", 값: " + entry.getValue());
        }
    }
}

설명:

  • entrySet().iterator(): HashMap의 엔트리 셋에 대한 Iterator를 반환합니다.
  • hasNext(): 다음 요소가 있는지 확인합니다.
  • next(): 다음 요소를 가져옵니다.

출력:

키: Apple, 값: 100
키: Banana, 값: 150
키: Orange, 값: 120

3. Stream API를 사용한 HashMap 순회 (자바 8 이상)

자바 8 이상에서는 Stream API를 사용해 HashMap의 키-값 쌍을 간결하게 순회할 수 있습니다. Stream은 함수형 프로그래밍 스타일을 제공하며, 데이터 처리를 더 쉽게 할 수 있습니다.

3.1 Stream API를 사용한 HashMap의 키-값 쌍 순회

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        // HashMap 선언 및 초기화
        HashMap<String, Integer> map = new HashMap<>();
        map.put("Apple", 100);
        map.put("Banana", 150);
        map.put("Orange", 120);

        // Stream API를 사용해 키-값 쌍 순회
        map.forEach((key, value) -> System.out.println("키: " + key + ", 값: " + value));
    }
}

설명:

  • forEach(): Stream API의 함수형 메서드로, 키-값 쌍을 람다식으로 순회할 수 있습니다.
  • 람다식을 사용해 각 키-값 쌍에 대해 작업을 수행할 수 있습니다.

출력:

키: Apple, 값: 100
키: Banana, 값: 150
키: Orange, 값: 120

4. Stream API로 키 또는 값 필터링

Stream API를 사용해 HashMap에서 조건에 맞는 키나 값만 필터링하여 순회할 수 있습니다.

4.1 값이 120 이상인 키-값 쌍만 출력하는 예제

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        // HashMap 선언 및 초기화
        HashMap<String, Integer> map = new HashMap<>();
        map.put("Apple", 100);
        map.put("Banana", 150);
        map.put("Orange", 120);

        // 값이 120 이상인 키-값 쌍만 필터링하여 출력
        map.entrySet().stream()
            .filter(entry -> entry.getValue() >= 120)
            .forEach(entry -> System.out.println("키: " + entry.getKey() + ", 값: " + entry.getValue()));
    }
}

설명:

  • stream(): HashMap의 엔트리 셋을 Stream으로 변환합니다.
  • filter(): 조건에 맞는 값만 필터링합니다.
  • forEach(): 필터링된 결과를 처리합니다.

출력:

키: Banana, 값: 150
키: Orange, 값: 120

요약

  • for-each 반복문: HashMap, , 또는 키-값 쌍을 간단하게 순회할 수 있습니다.
  • Iterator: 컬렉션을 순회하는 표준적인 방법으로, HashMap의 엔트리 셋을 안전하게 처리할 수 있습니다.
  • Stream API: 자바 8 이상에서 함수형 프로그래밍 스타일을 제공하여 간결하게 HashMap을 처리할 수 있습니다.
  • 필터링: Stream API를 사용해 조건에 맞는 데이터만 선택적으로 순회할 수 있습니다.

이러한 방법들을 통해 HashMap의 데이터를 효율적으로 순회하고 처리할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com