코드네임 :

JAVA - 컬렉션 프레임워크 : Map<K,V> 본문

👾Android/JAVA

JAVA - 컬렉션 프레임워크 : Map<K,V>

비엔 Vien 2024. 6. 5. 16:23

[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();