Map
- 생성자가 없는 인터페이스
HashMap, TreeMap등으로 응용하여 사용 가능
- 순서가 없는 (Key,Value) 쌍으로 이루어진 데이터의 집합 (Key값 중복 허용 안함)
- Key값을 기준으로 Value값 조회
- Key 값 단위로 중복을 허용하지 않음
사용할 때
- Key, Value로 값이 쌍으로 존재할 때 사용
- Key값이 중복을 허용하지 않을 때
- 순서가 필요 없을 때
기능
- 선언 :
Map<String, Integer> intMap 형태로 Key타입과 Value타입을 지정해서 선언
- 생성 :
new HashMap<>(); 형태로 생성
주요 기능
- 추가 :
put(추가할 Key값 ,추가할 Value값) 형태로 Key에 Value값을 추가
- 조회 :
get(조회할 Key값) 형태로 Key에 있는 Value값을 조회
- 전체 key 조회 :
keySet() 형태로 전체 key 값들을 조회
- 전체 value 조회 :
values() 형태로 전체 value 값들을 조회
- 삭제 :
remove(삭제할 Key값) 형태로 Key에 있는 Value값을 삭제
Map의 자식 클래스
HashMap : 중복을 허용하지 않고 순서를 보장하지 않음 , 키와 값으로 null이 허용
TreeMap : key 값을 기준으로 정렬을 할 수 있습니다. 다만, 저장시 정렬(오름차순)을 하기 때문에 저장시간이 다소 오래 걸림
예시
// Map
// (사용하기 위해선 import java.util.Map; 를 추가해야함)
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, Integer> intMap = new HashMap<>(); // 선언 및 생성
// 키 , 값
intMap.put("일", 11);
intMap.put("이", 12);
intMap.put("삼", 13);
intMap.put("삼", 14); // 중복 Key값은 덮음
intMap.put("삼", 15); // 중복 Key값은 덮음
// get()
System.out.println(intMap.get("삼")); // 15 출력
// key 값 전체 출력
for (String key : intMap.keySet()) {
System.out.println(key); // 일,이,삼 출력
}
// value 값 전체 출력
for (Integer key : intMap.values()) {
System.out.println(key); // 11,12,15 출력
}
}
}