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에 적용시켜줌을 이해하였다.