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
의 데이터를 효율적으로 순회하고 처리할 수 있습니다.