Map & HashMap (업데이트: 2024.06.12.)

devyumi·2023년 10월 16일
0

Java

목록 보기
1/14

Map

  • (key, value) 로 데이터를 저장하는 인터페이스
  • key로 value를 얻어냄
  • key는 중복 불가능, value는 중복 가능
  • 순차적으로 모두 탐색하는 List와 다르게 원하는 값으로 바로 갈 수 있음
  • 자료형으로는 HashMap, TreeHashMap, LinkHashMap 등이 있음

HashMap

  • Map 인터페이스 자료형 중 하나
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(); // [elephant, lion, cat, ..., chicken]
map.values(); // [4, 3, 8, ..., 8765]

  • get(Object key): 해당 key의 value 값 get
map.get("chicken") // 8765

  • entrySet(): (key, value) 값 모두 get (순서대로 get 하지 않음)
map.entrySet();	// [panda=2, chicken=8765, monkey=11 ...]

for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println("key: " + entry.getKey() + ", value: " + entry.getValue());
}
	// key: panda, value: 2
	// key: chicken, value: 8765
	// key: monkey, value: 11

Map.Entry: Map 인터페이스의 내부 인터페이스. key와 value를 한번에 조작하기 위해 사용함


  • remove(Object key): key, value 데이터 삭제
map.remove("elephant"); // (elephant, 4) 삭제

  • getOrDefault(Object key, V defaultValue): 찾는 key 값이 존재하면 value 반환, key가 존재하지 않으면 기본값 반환
map.getOrDefault("chicken", 0);	// 8765

map.getOrDefault("bird", 1);	// 1

map.getOrDefault("bird", 1) + 1;	// 2
  • replace(K key, V value): 찾는 key 값이 존재하면 해당 key의 value를 새로운 value로 변경함
map.replace("chicken", 13);
System.out.println(map.get("chicken"));	// 13

  • replace(K key, V oldValue, V newValue): 찾는 key 값이 존재하고, key의 oldValue 값이 일치할 때만 newValue롤 변경함
map.replace("chicken", 12, 13);	// oldValue 값이 일치하지 않음
System.out.println(map.get("chicken"));	// 13

0개의 댓글

관련 채용 정보