Ⅳ. Map
1. Map(맵)
- 두 개의 구성 요소를 지닌 데이터를 저장 및 관리 → Key, Value
2. Map의 특징
- 순서가 없음 (대신, Key가 존재)
- Key는 중복저장 불가, Value는 중복 가능
3. Map의 종류
- HashMap : 해시 알고리즘으로 키의 중복을 검사하는 Map
- TreeMap : HashMap에 정렬 기능이 추가된 형태의 Map
4. HashMap의 기능
- put( ) 메소드 : 키와 값을 추가
- get( ) 메소드 : HashMap을 읽음
- keySet을 이용해 순차적인 접근도 가능
※ keySet : Key만 모여있는 Set
// Example
package day15;
// HashMap
import java.util.*;
public class Main {
public static void main(String[] args) {
// HashMap<키, 값>
// 축구팀 내에서 이름을 같을 수 있으나 번호가 같을 수 없음
HashMap<Integer, String> player = new HashMap<>();
player.put(7, "손흥민");
player.put(11, "황희찬");
player.put(11, "조영욱"); // 키가 같으면 덮어짐
player.put(10, "이재성");
player.put(13, "이재성");
player.put(1, "김승규");
System.out.println(player);
System.out.println("");
// Map은 keySet을 제공함. (keySet : Key만 모여있는 Set)
// keySet을 이용해 순차적인 접근도 가능
// 제네릭 기반
Set<Integer> a = player.keySet();
for(Integer k : a) {
System.out.print(k + " " + player.get(k) + " ");
}
}
}
// 결과 :
// {1=김승규, 7=손흥민, 10=이재성, 11=조영욱, 13=이재성}
//
// 1 김승규 7 손흥민 10 이재성 11 조영욱 13 이재성
5. TreeMap의 기능
- HashMap과 비슷함
6. Map의 예제
// Example
package sample;
import java.util.*;
class aaa implements Comparator<Integer> {
public int compare(Integer n1, Integer n2) {
return n2.intValue() - n1.intValue();
}
}
public class Main {
public static void main(String[] args) {
// Comparator 인터페이스를 구현해 객체를 넣고, 내림차순이 되게 코딩
TreeMap<Integer, String> player = new TreeMap<>(new aaa());
player.put(7, "손흥민");
player.put(11, "황희찬");
player.put(11, "조영욱");
player.put(10, "이재성");
player.put(13, "이재성");
player.put(1, "김승규");
System.out.println(player);
System.out.println("");
Set<Integer> a = player.keySet();
for(Integer k : a) {
System.out.print(k + " " + player.get(k) + " ");
}
}
}
// 결과 :
// {13=이재성, 11=조영욱, 10=이재성, 7=손흥민, 1=김승규}
//
// 13 이재성 11 조영욱 10 이재성 7 손흥민 1 김승규
'Programming Language > Java' 카테고리의 다른 글
컬렉션 프레임워크 - 6. Stack, Deque (0) | 2022.07.20 |
---|---|
컬렉션 프레임워크 - 5. Queue (0) | 2022.07.20 |
컬렉션 프레임워크 - 3. Set (0) | 2022.07.19 |
컬렉션 프레임워크 - 2. List (0) | 2022.07.19 |
컬렉션 프레임 워크 - 1. 컬렉션 프레임워크 (Collection Framework) (0) | 2022.07.19 |