[JAVA] 57. Collection - Map

편준민's avatar
Feb 19, 2025
[JAVA] 57. Collection - Map
💡
키-값을 하나의 쌍으로 묶어서 저장하는 자료구조이다. 다른 언어에서는 딕셔너리(dictionary)라고도 한다. Map은 중복된 키를 가질 수 없다.

사전과 같은 구조이다.

사전의 단어 - 키(key) 라고 부른다
단어에 설명 - 값(value)라고 부른다.

Map은 List와 자료 구조가 상당히 다르다

Collection 인터페이스를 사용하지 않고 별도의 Map이라는 이름의 인터페이스가 제공된다.

Map 인터페이스의 클래스

  • HashMap - 해싱 테이블에 저장되고, Key의 정렬이 필요없다면 HashMap이 약간 빠르다.
  • TreeMap - 탐색 테이블에 저장되고, 반대로 정렬이 필요하다면 treeMap을 사용한다.
데이터를 저장 할 때에는 put() 메서드를 사용.
데이터를 출력 할 때에는 get() 메서드를 사용.
데이터를 삭제 할 때에는 remove()를 사용하는데 () 안에 정확한 key 값을 입력하여 삭제
데이터 저장은 TreeMap을 사용하면 순서대로 저장 되지만, 출력할 때는 순서대로 나올 것을 보장 받지 못한다.

1. HashMap

package ex13; import java.util.HashMap; import java.util.Map; public class Map01 { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); // 추가할 때는 put 사용 map.put("kim", "1234"); map.put("park", "pass"); map.put("lee", "word"); System.out.println(map.get("lee")); // word 출력 for (String key : map.keySet()) { System.out.println("key:" + key + " // " + "value:" + map.get(key)); } map.remove("lee"); // 하나의 항목 삭제 map.put("choi", "password"); // 하나의 맵 생성 System.out.println(map); } }
lee의 value = word // 순서 무관하게 출력
lee의 value = word // 순서 무관하게 출력

2. TreeMap

package ex13; import java.util.Map; import java.util.TreeMap; public class Map02 { public static void main(String[] args) { Map<String, String> map = new TreeMap<String, String>(); // 추가할 때는 put 사용 map.put("kim", "1234"); map.put("park", "pass"); map.put("lee", "word"); System.out.println(map.get("lee")); // word 출력 for (String key : map.keySet()) { System.out.println("key:" + key + " // " + "value:" + map.get(key)); } map.remove("lee"); // 하나의 항목 삭제 map.put("choi", "password"); // 하나의 맵 생성 System.out.println(map); } }
lee의 value = word // 데이터 저장은 순서대로 저장 되지만 출력은 순서대로 나올 것을 보장 못함
lee의 value = word // 데이터 저장은 순서대로 저장 되지만 출력은 순서대로 나올 것을 보장 못함
 

3. LinkedHashMap

package ex13; import java.util.LinkedHashMap; import java.util.Map; public class Map03 { public static void main(String[] args) { Map<String, String> map = new LinkedHashMap<>(); // 추가할 때는 put 사용 map.put("kim", "1234"); map.put("park", "pass"); map.put("lee", "word"); System.out.println(map.get("lee")); // word 출력 for (String key : map.keySet()) { System.out.println("key:" + key + " // " + "value:" + map.get(key)); } map.remove("lee"); // 하나의 항목 삭제 map.put("choi", "password"); // 하나의 맵 생성 System.out.println(map); } }
lee의 value = word // 데이터 저장은 순서대로 저장 되지만 출력은 순서대로 나올 것을 보장 못함
lee의 value = word // 데이터 저장은 순서대로 저장 되지만 출력은 순서대로 나올 것을 보장 못함
 
Share article

YunSeolAn