코드네임 :
JAVA - 컬렉션 프레임워크 : Map<K,V> 본문
[Map 컬렉션]
: 키를 이용하여 객체를 저장할 수 있는 자료구조를 제공하는 인터페이스
- Key 와 Value 한 쌍(Entry)으로 데이터를 저장 -> Map.Entry 객체
- Key 중복저장 불가, Value 는 중복 가능 ⭐️ ⭐️
- Collection과는 별개의 interface (LIst, Set과 기본 메서드가 다름)
- K, V는 메소드의 매개변수 타입과 리턴 타입으로 저장되는 키와 객체의 타입을 Map 컬렉션을 생성할 때 결정하라는 뜻
키 타입이 String, 값 타입이 Integer인 Map 컬렉션에 키와 값을 저장, 검색, 제거 예시
Map<K,V> 인터페이스 구현 클래스
Map<K,V> 컬렉션의 주요 메서드
HashMap<K,V>
: Map<K,V> 인터페이스를 구현한 대표적 구현 클래스
- Key, Value의 쌍으로 데이터를 관리
- HashMap 의 키로 사용할 객체는 hashCode()와 equals 메서드 등을 재정의 해서 동등 객체가 될 조건을 정해야 함
ㄴ 객체가 달라도 동등 객체라면 같은 키로 간주하고, 중복 저장되지 않도록 하기 위함
ㄴ 동등 객체의 조건은 hashCode()의 리턴값이 같아야 하고, equals()메서드가 true를 리턴해야 함
String 타입의 키와 String 타입의 값을 저장하는 HashMap 객체 생성
- Map<K,V> interface의 구현 클래스 생성자로 동적컬렉션 생성
Map<String, String> map = new HashMap<String, String>(); #방법1
Map<String, String> map = new HashMap<String, String>(); #방법2
HashMap<String, String> map = new HashMap<String, String>(); #방법3
HashMap<String, String> map = new HashMap<String, String>(); #방법4
HashMap 활용 예제
여기 코드를 iterator 안쓰고 for - each 문 쓴다면
import java.util.Map.Entry;
~~
//객체를 하나씩 처리
//48p
Set<String> keySet = map.keySet();
for(String key : keySet) {
System.out.println("\t"+ key + " : " + map.get(key));
}
//49p
for(Entry<String, Integer> pair : map.entrySet()) {
System.out.println("\t"+ pair.getKey() + " : " + pair.getValue());
}
System.out.println();
'👾Android > JAVA' 카테고리의 다른 글
Java - 프로그래머스 - 인터페이스 (0) | 2024.06.07 |
---|---|
Java - 예외 처리 (0) | 2024.06.05 |
JAVA - 컬렉션 프레임워크 : Set<E> (1) | 2024.06.05 |
JAVA - 컬렉션 프레임워크 : List<E> (0) | 2024.06.04 |
JAVA - 기본 API -String, Object, Wrapper / Scanner (0) | 2024.05.23 |