이전 컬렉션에 대해서 정리하면서
맵의 기본적인 메서드들을 정리했었다.
이번엔 해시관련 문제들을 풀면서 공부한 메서드들을 전부 정리했다.
조금 더 맵을 잘 활용할 수 있게 해주는 심화 메서드들이다.
getOrDefault(key, defaultValue)
key를 통해 map안에서 해당 key를 포함하고 있는 entry가 있으면 entry의 value를 리턴 없으면 defaultValue를 리턴 한다.
putIfAbsent(key, Value)
put메서드를 시행하는데 이미 key값에 매핑된 value가 있다면,
value를 넣지 않고 이미 들어있었던 value값을 리턴한다.
key값에 매핑된 값이 없거나 entry 자체가 없을때는 put메서드 처럼 동작하고 Null을 리턴한다.
compute(key, function(){}) : key로 entry를 찾아와 함수를 적용시킨 값으로 대체한다.
map안에 해당하는 key가 없으면 NullPointException
computIfAbsent(key, function(){}) : key에 해당하는 entry가 없으면,
함수를 통해 만들어진 enrty를 맵에 저장한다.
이미 key에 해당하는 entry가 있으면 함수와 저장 과정을 취소하고 해당 entry를 리턴한다.
computeIfPresent(key, function(){}) : key에 해당하는 entry가 있으면,
함수 동작 결과에 따른다.
key가 존재하지 않으면 함수와 저장 과정을 취소하고 null을 리턴한다.
Map.Entry<> : key와 value 한 쌍을 의미하는 entry를 선언한다.
Map.entry() : entry형태로 key와 value를 한 쌍으로 만들어 준다.
6,7번 예시
Map.Entry<Integer, Integer> entry = Map.entry(1, 1);
좋은 정보 감사합니다