Java

Map 의 메소드 compute 이해하기

bangle0621 2024. 1. 5. 22:11

코딩 문제를 풀던 중, 풀이 방법에서 compute가 사용되었는데 내 나름의 방식으로 이해한 점을 기록한다

compute 메소드에 직접 들어가 이해하는 것이 가장 좋은 방법이겠지만, 나한텐 너무 복잡하다.

 

result.compute(ch, (k, v) -> (v == null)? 1 : ++v);

 

compute가 사용된 구문은 위와 같았는데,

람다로 되어있기도 하고, 처음에는 ch와 k,v가 대체 무슨 역할인지 이해가 가지 않았다. 

 

public void test() {
		Map<String , Integer> result = new HashMap<>();
		
		result.put("변수1", 1000);
		result.put("변수2", 2000);
		
		result.compute("변수1", (k, v) -> v = v + 100);

		System.out.println(result.get("변수1"));
		System.out.println(result.get("변수2"));
}
---------
콘솔 로그
-----------
1100
2000

위처럼 했을 때,

기존 소스에서 ch에 해당하는 부분이 변수에 해당하는 부분으로

result 안에서 ch 또는 "변수1" 값에 해당되는 key 값을 찾아, value에 적용시켜줌을 이해하였다.