Map
- (key, value) 로 데이터를 저장하는 인터페이스
- key로 value를 얻어냄
- key는 중복 불가능, value는 중복 가능
- 순차적으로 모두 탐색하는 List와 다르게 원하는 값으로 바로 갈 수 있음
- 자료형으로는 HashMap, TreeHashMap, LinkHashMap 등이 있음
HashMap
Map<String, Integer> map = new HashMap<>();
put(Object key, Object value)
: key, value 데이터 저장
중복되는 key 값을 put할 경우 새로 입력되는 값으로 대치됨
Map<String, Integer> map = new HashMap<>();
map.put("elephant", 4);
map.put("lion", 3);
map.put("cat", 8);
map.put("tiger", 10);
map.put("giraffe", 335);
map.put("dog", 1279);
map.put("pig", 33);
map.put("panda", 2);
map.put("monkey", 11);
map.put("chicken", 8765);
keySet()
, values()
: 각각 모든 key, value 값 get
map.keySet();
map.values();
get(Object key)
: 해당 key의 value 값 get
map.get("chicken")
entrySet()
: (key, value) 값 모두 get (순서대로 get 하지 않음)
map.entrySet();
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("key: " + entry.getKey() + ", value: " + entry.getValue());
}
Map.Entry
: Map 인터페이스의 내부 인터페이스. key와 value를 한번에 조작하기 위해 사용함
remove(Object key)
: key, value 데이터 삭제
map.remove("elephant");
getOrDefault(Object key, V defaultValue)
: 찾는 key 값이 존재하면 value 반환, key가 존재하지 않으면 기본값 반환
map.getOrDefault("chicken", 0);
map.getOrDefault("bird", 1);
map.getOrDefault("bird", 1) + 1;
replace(K key, V value)
: 찾는 key 값이 존재하면 해당 key의 value를 새로운 value로 변경함
map.replace("chicken", 13);
System.out.println(map.get("chicken"));
replace(K key, V oldValue, V newValue)
: 찾는 key 값이 존재하고, key의 oldValue 값이 일치할 때만 newValue롤 변경함
map.replace("chicken", 12, 13);
System.out.println(map.get("chicken"));