[Java] Map의 심화 메서드

오진석·2023년 7월 30일
0

JAVA

목록 보기
6/6

이전 컬렉션에 대해서 정리하면서

맵의 기본적인 메서드들을 정리했었다.

이번엔 해시관련 문제들을 풀면서 공부한 메서드들을 전부 정리했다.

Map의 대표적인 메서드

  1. put() : key : value형태로 값을 저장
  2. A.putAll(B) : 맵A에 맵B의 entry들을 전부 저장
  3. get() : key값을 넣으면 매치되는 밸류를 리턴
  4. remove() : key값을 넣으면 매치되는 entry를 삭제
  5. isEmpty() : 맵이 비어있는지 여부를 확인하고 boolean을 리턴
  6. size() : 맵의 크기를 리턴 (엔트리의 개수)
  7. containsKey() : 요소들의 Key값들 중 인자와 같은 값이 있으면 true리턴
  8. containsValue() : 요소들의 Value값들 중 인자와 같은 값이 있으면 true리턴
  9. keySet() : Set형태로 key들을 리턴 (중복X 특징을 유지)
  10. values() : 컬렉션 형태로 value들을 리턴
  11. entrySet() : entry들을 셋에 담아서 리턴한다.
    1. getKey() : 해당 엔트리의 키를 리턴
    2. getValue() : 해당 엔트리의 밸류를 리턴

심화 메서드

조금 더 맵을 잘 활용할 수 있게 해주는 심화 메서드들이다.

  1. getOrDefault(key, defaultValue)

    key를 통해 map안에서 해당 key를 포함하고 있는 entry가 있으면 entry의 value를 리턴 없으면 defaultValue를 리턴 한다.

  2. putIfAbsent(key, Value)

    put메서드를 시행하는데 이미 key값에 매핑된 value가 있다면,

    value를 넣지 않고 이미 들어있었던 value값을 리턴한다.

    key값에 매핑된 값이 없거나 entry 자체가 없을때는 put메서드 처럼 동작하고 Null을 리턴한다.

  3. compute(key, function(){}) : key로 entry를 찾아와 함수를 적용시킨 값으로 대체한다.

    map안에 해당하는 key가 없으면 NullPointException

  4. computIfAbsent(key, function(){}) : key에 해당하는 entry가 없으면,

    함수를 통해 만들어진 enrty를 맵에 저장한다.

    이미 key에 해당하는 entry가 있으면 함수와 저장 과정을 취소하고 해당 entry를 리턴한다.

  5. computeIfPresent(key, function(){}) : key에 해당하는 entry가 있으면,

    함수 동작 결과에 따른다.

    1. 함수 동작 결과가 null 이면 해당 entry를 제거
    2. 함수 동작 결과가 null이 아니면 해당 entry와 교체한다.

    key가 존재하지 않으면 함수와 저장 과정을 취소하고 null을 리턴한다.

  6. Map.Entry<> : key와 value 한 쌍을 의미하는 entry를 선언한다.

  7. Map.entry() : entry형태로 key와 value를 한 쌍으로 만들어 준다.

    6,7번 예시

    Map.Entry<Integer, Integer> entry = Map.entry(1, 1);

2개의 댓글

comment-user-thumbnail
2023년 7월 30일

좋은 정보 감사합니다

1개의 답글