728x90
반응형
맵 (Map)

 

관계표현자료형, Associative array (Python : Dictionary {key : value})

Map은 List나 ArrayList처럼 Sequential 하게 해당 요소 값을 구하지 않고 Key를 통해 value를 얻는다.

맵의 가장 큰 특징이라면 key로 value를 얻어낸다는 점이다.


HashMap

 

자바의 맵(Map) 중 가장 기본적인 HashMap에 대해 알아보자.

Map 역시 List와 마찬가지로 Interface이다.
Map 인터페이스를 구현한 Map 자료형에는 HashMap, LinkedHashMap, TreeMap 등이 있다.

 

  • put :
    key와 value는 put 메서드를 이용하여 추가할 수 있다.
    key와 value가 String 형태인 HashMap을 만들고 각 항목을 입력한다.
    • HashMap 역시 Generics를 이용한다.
    • HashMap의 Generics는 Key, Value 모두 String 타입이다.
      따라서 Key, Value에 String 이외의 자료형은 사용할 수 없다.

  • get :
    key에 해당하는 value 값을 얻기 위해서는 get 메서드를 사용한다.
    • getOrDefault :
      Map의 key에 해당하는 value가 없을 경우에는 get 메서드 사용시 null이 return 된다.
      null 대신 사전 정의한 default 값을 얻고 싶을 경우에는 getOrDefault 메서드를 사용한다.

  • containsKey :
    containsKey 메서드는 Map에 해당 key가 있는지를 조사하여 boolean 으로 return 한다.

  • remove :
    remove 메서드는 Map의 항목을 삭제하는 메서드로 key 값에 해당하는 아이템(key, value)을 삭제한 후
    그 value 값을 return 한다. (key, value 쌍이 삭제된 후 value 값 return)


  • size :
    size 메서드는 Map의 갯수를 return 한다.


  • keySet :
    keySet은 Map의 모든 Key를 모아서 return 한다.

 

import java.util.HashMap;	// HashMap

	public class TestClass{
		public static void main(String[] args) {
			
			/* put */
			HashMap<String, String> map = new HashMap<>();
			map.put("people", "사람");
			map.put("baseball", "야구");
			
			/* get */
			System.out.println(map.get("people"));	// 사람
			
			/* getOrDefault */
			System.out.println(map.get("animal"));	// null
			System.out.println(map.getOrDefault("animal", "동물"));	// 동물
			
			/* containsKey */
			System.out.println(map.containsKey("people"));	// true
			System.out.println(map.containsKey("Animal"));	// false
			
			/* remove */
			System.out.println(map.remove("people"));	// 삭제 후 people 값 return
			
			/* size */
			System.out.println(map.size());		// 위에서 remove 하고 난 뒤 1 개의 쌍만 남음.
			
			/* keySet */
			map.put("bascketball", "농구");		// key, value 쌍 추가.
			
			System.out.println(map.keySet());	// [baseball, bascketball] 출력
			
		}	
	}

 

LinkedHashMap과 TreeMap

Map의 가장 큰 특징은 순서에 의존하지 않고 key로 value를 가져오는 데 있다.
하지만 가끔은 Map에 입력된 순서대로 데이터를 가져오고 싶은 경우도 있고
때로 key에 의해 sort 되도록 저장하고 싶을 수도 있을 것이다.
이런 경우에는 LinkedHashMap과 Treemap을 사용하는 것이 유리하다.

- LinkedHashMap은 입력된 순서대로 데이터를 저장하는 특징을 가지고 있다. (Sequential)
- TreeMap은 입력된 key의 오름차순 순서로 데이터를 저장하는 특징을 가지고 있다.
728x90
반응형

'Language > Java' 카테고리의 다른 글

Java - 제어문(conditional, iteration)  (0) 2023.03.25
Java - Set  (0) 2023.03.25
Java - List  (0) 2023.03.25
Java - Array  (0) 2023.03.25
Java 자료형 - StringBuffer  (0) 2023.03.25

+ Recent posts