자바: Map 클래스, 자주 쓰는 메서드

친환경 개발자
|2024. 6. 4. 21:25



Map(맵) 인터페이스

  • 키-값 쌍을 저장
  • 데이터 검색에 효율적이기에 자주 사용
  • 키 중복 불가능, 키와 값은 1대1로만 매치

 

 

 

 

 

Map(맵) 클래스

 

데이터 읽기 성능 : HashMap > LinkedHashMap > TreeMap > HashTable

종류 HashMap TreeMap LinkedHashMap HashTable
동기화 여부 비동기화 비동기화 비동기화 동기화
정렬 순서 없음 key값에 따라 정렬 없음 없음
삽입 순서 유지 없음 없음 삽입 순서 유지 없음
null 허용 키-값 둘 다 허용 값만 허용 키-값 둘 다 허용 허용 X
성능 평균 O(1) 평균 O(log n) 평균 O(1) 평균 O(1)

 

 

 

 

 

 

자바에서 큐의 주요 메서드

  • put(K key, V value): 지정된 키와 값을 맵에 추가
  • get(Object key): 지정된 키와 연결된 값을 반환
  • containsKey(Object key): 맵에 지정된 키가 포함되어 있는지 확인
  • containsValue(Object value): 맵에 지정된 값이 포함되어 있는지 확인
  • remove(Object key): 지정된 키로 맵에서 요소를 제거
  • size(): 맵에 있는 키-값 쌍의 수를 반환
  • keySet(): 맵의 모든 키를 포함하는 Set을 반환
  • values(): 맵의 모든 값을 포함하는 Collection을 반환
  • entrySet(): 맵의 모든 키-값 쌍을 포함하는 Set을 반환
  • isEmpty(): 맵이 비어 있는지 확인
  • clear(): 맵의 모든 요소를 제거

 

 

 

 

 

예시

import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        
        // put: 요소 추가
        map.put("Apple", 1);
        map.put("Banana", 2);
        map.put("Cherry", 3);
        
        // get: 키로 값 가져오기
        System.out.println("Apple: " + map.get("Apple"));
        
        // containsKey: 키가 존재하는지 확인
        System.out.println("Contains 'Banana': " + map.containsKey("Banana"));
        
        // containsValue: 값이 존재하는지 확인
        System.out.println("Contains value 3: " + map.containsValue(3));
        
        // remove: 키로 요소 제거
        map.remove("Cherry");
        
        // size: Map의 크기
        System.out.println("Map size: " + map.size());
        
        // keySet: 모든 키를 Set으로 반환
        System.out.println("Keys: " + map.keySet());
        
        // values: 모든 값을 Collection으로 반환
        System.out.println("Values: " + map.values());
        
        // entrySet: 모든 키-값 쌍을 Set으로 반환
        System.out.println("Entries: " + map.entrySet());
        
        // isEmpty: Map이 비어 있는지 확인
        System.out.println("Is map empty: " + map.isEmpty());
        
        // clear: 모든 요소 제거
        map.clear();
        System.out.println("Is map empty after clear: " + map.isEmpty());
    }
}