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 메서드를 사용한다.
- 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 |