프로그래밍/Java
[자바 문법] Map 인터페이스
코드몬스터
2023. 8. 10. 20:56
728x90
💡 Java Collection Framework(JCF) 에 대해 작성 했지만 Map에 대해 깊게 작성해 보자!
Map 인터페이스 종류
01. HashMap
02. TreeMap
값을 자동으로 오름차순 정렬
03. LinkedHashMap
key의 순서가 있는 경우
Map 출력을 위해 Map 타입의 변수를 아래와 같이 준비해보자!
import java.util.*;
import java.io.*;
public class Solution {
public class main(String[] arg) {
// Map 생성
Map<Stirng, Integer> map = new HashMap<>();
// Map의 value 안에 배열 넣기
Map<String, int[]> mapArray = new HashMap<>();
// 입력 값 받기
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenzier(bf.readLine());
// num: 입력 받는 데이터의 총 개수
int num = Integer.parseInt(st.nextToken());
for (int i = 0; i < num; i++) {
String key = st.nextToken();
mapArray.put(key, new int[8]); // map의 value 안에 배열 생성
}
}
}
Map 출력 방법
여러 출력 방법이 있겠지만, 저의 주관적인 판단에서 필요한 부분만 정리했습니다.
key, value 동시에 출력할 수 있는 forEach()와 각각 출력할 수 있는 keySet(), values()에 대해 알아보자
01. keySet() - key 값 가져오기
keySet의 경우, return type이 ★Set 인터페이스 ★ 이다.
- Set 컬렉션은 중복을 가질 수 없고, 순서를 보장할 수 없다.
- HashMap 또한 key 값은 중복을 가질 수 없다!!
// ⭐ Iterator 타입을 활용한 key 값 출력방법
Iterator test01 = mapArray.keySet().iterator();
while(test01.hasNext()) {
String key = test01.next();
System.out.println("key = " + key);
}
// ⭐ Set 타입을 활용한 key 값 출력방법
Set<String> test02 = mapArray.keySet();
for (String str : test02) {
System.out.println("str : " + str);
}
02. values() - map의 value 값 가져오기
values()의 경우, return type이 ★Collection 인터페이스★ 이다.
// ⭐ values() 메서드를 활용한 value 값 출력방법
Collection<String> values = mapArray.values();
방법 02. forEach()
해당 방법은 자바스크립트 문법과 비슷한 것 같다!
import java.util.*;
import java.io.*;
public class Solution {
public class main(String[] arg) {
// Map 생성
Map<Stirng, Integer> map = new HashMap<>();
// ⭐ forEach를 활용한 출력 방법
map.forEach((key, value) -> {
System.out.println(key + " : " + value);
})
}
}
Map 메서드
참고 사이트