본문 바로가기

새롭게 쌓은 지식

Map 인터페이스의 merge() 메서드

백준 2108번 통계학 문제를 Map을 이용하여 풀이했는데 더 좋은 방법이 있을 것 같아 Map의 메서드를 뒤져보았다.

바로 merge라는 메서드이다.

 

key가 연관된 값이 없거나 null 인경우 non-null value를 연관 시켜준다. 그렇지 않으면 연관된 값을 remapping function 결과 값으로 대체하거나, 그 결과 값도 null인 경우 제거한다. 해당 메서드는 key에 대한 다수의 value를 결합할 때 사용될 수 있다.

 

 

 

jdk 1.8에서 추가된 메서드이다.

 

아래 코드를 보자.

 

 

알파벳 별로 개수를 세는 과정이다.

내가 풀이한 방법이다.

 

이와 같은 코드인 것이 정말 놀라웠다.

 

input을 하나씩 map.put(key, value) 한다. 이때 key는 input이다.

value값이 중요하다.

 

put하는 key에 대한 value값이 null 인경우 두번째 파라미터 1을 value로 넣는다.

혹시 put하는 key에 대한 value값이 이미 존재한다면 그 값을 +1 한다.

 

추가로 Integer::sum 은 메서드 레퍼런스 라는 방식이다.

 

이를 람다식으로 표현하면

이렇게 변형할 수 있다.

 

Map을 이용하여 풀이할 때 merge() 메서드를 적극 활용해야겠다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

꾸준히 다시보자.

 

1. 220930

2. 221026

Recent Posts
Popular Posts
Recent Comments