728x90
Map이란?
Map 인터페이스는 Java의 컬렉션 프레임워크에서 키-값 쌍(key-value pair)을 저장하기 위한 구조를 제공합니다. Map 인터페이스의 주요 구현체로는 HashMap, TreeMap, LinkedHashMap 등이 있으며, 이들은 각기 다른 특성을 가지고 데이터를 저장하고 관리합니다.
주요 메서드
- put(K key, V value): Map에 키와 값을 추가합니다. 동일한 키가 있으면 값을 덮어씁니다.
- get(Object key): 지정한 키의 값을 반환합니다.
- remove(Object key): 지정한 키에 대한 키-값 쌍을 제거합니다.
- containsKey(Object key): 지정한 키가 존재하는지 확인합니다.
- containsValue(Object value): 지정한 값이 존재하는지 확인합니다.
- keySet(): Map의 모든 키를 반환합니다.
- values(): Map의 모든 값을 반환합니다.
- entrySet(): 키-값 쌍을 Map.Entry 객체로 반환합니다.
사용 예제 코드
아래 예제는 HashMap을 사용하여 키-값 쌍을 추가하고 조회하는 기본적인 예제입니다.
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
// HashMap 인스턴스 생성
Map<String, Integer> map = new HashMap<>();
// 데이터 추가
map.put("Apple", 100);
map.put("Banana", 150);
map.put("Orange", 200);
// 값 가져오기
System.out.println("Apple의 가격: " + map.get("Apple")); // 출력: 100
// 모든 키-값 쌍 출력하기
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + "의 가격: " + entry.getValue());
}
// 키가 존재하는지 확인
if (map.containsKey("Banana")) {
System.out.println("Banana의 가격은: " + map.get("Banana"));
}
// 값 제거
map.remove("Orange");
System.out.println("Orange 제거 후 map: " + map);
}
}
결과
위 코드는 다음과 같은 출력 결과를 제공합니다.
Apple의 가격: 100
Apple의 가격: 100
Banana의 가격: 150
Orange의 가격: 200
Banana의 가격은: 150
Orange 제거 후 map: {Apple=100, Banana=150}
HashMap을 사용하면 키를 통해 빠르게 값에 접근할 수 있으며, 키와 값의 삽입 순서는 유지되지 않습니다.
Map을 함수 인자로 사용
예제 1: Map을 인자로 받아 데이터 처리하기
이 예제는 Map을 함수 인자로 받아 특정 키의 값을 업데이트하고, 처리된 결과를 출력하는 함수입니다.
import java.util.HashMap;
import java.util.Map;
public class MapFunctionExample {
// Map을 인자로 받아 특정 키의 값을 업데이트하는 함수
public static void updatePrice(Map<String, Integer> map, String key, int newPrice) {
if (map.containsKey(key)) {
map.put(key, newPrice);
System.out.println(key + "의 가격이 " + newPrice + "로 업데이트되었습니다.");
} else {
System.out.println(key + "가 Map에 존재하지 않습니다.");
}
}
public static void main(String[] args) {
// Map 초기화
Map<String, Integer> fruitPrices = new HashMap<>();
fruitPrices.put("Apple", 100);
fruitPrices.put("Banana", 150);
fruitPrices.put("Orange", 200);
// 함수 호출로 Map의 값을 업데이트
updatePrice(fruitPrices, "Banana", 180);
updatePrice(fruitPrices, "Grapes", 300);
// 결과 출력
System.out.println("최종 Map: " + fruitPrices);
}
}
결과
위 코드는 다음과 같은 출력 결과를 제공합니다.
Banana의 가격이 180로 업데이트되었습니다.
Grapes가 Map에 존재하지 않습니다.
최종 Map: {Apple=100, Banana=180, Orange=200}
예제 2: Map을 반환하는 함수
이번 예제에서는 Map을 함수의 반환값으로 사용하여, 여러 값을 한 번에 반환하는 방법을 보여줍니다.
import java.util.HashMap;
import java.util.Map;
public class MapReturnExample {
// 계산 결과를 Map으로 반환하는 함수
public static Map<String, Integer> calculatePrices(int applePrice, int bananaPrice, int orangePrice) {
Map<String, Integer> prices = new HashMap<>();
prices.put("Apple", applePrice);
prices.put("Banana", bananaPrice);
prices.put("Orange", orangePrice);
return prices;
}
public static void main(String[] args) {
// 함수 호출로 Map 값 반환 받기
Map<String, Integer> fruitPrices = calculatePrices(120, 160, 220);
// 결과 출력
System.out.println("과일 가격 목록: " + fruitPrices);
}
}
결과
위 코드의 출력은 다음과 같습니다.
과일 가격 목록: {Apple=120, Banana=160, Orange=220}
728x90
'프로그래밍 > Java' 카테고리의 다른 글
JAR(Java ARchive), WAR(Web Application Archive)의 개념과 차이 (2) | 2024.10.27 |
---|---|
List와 ArrayList의 개념과 차이 (0) | 2024.10.25 |
Dependency injection(DI)란? (0) | 2024.10.24 |
@Controller와 @RestController의 차이 (0) | 2024.10.23 |
Portable Service Abstraction개념 활용 테스트 코드 작성 (0) | 2024.10.22 |