"entrySet()"은 key value가 둘 다 필요한 경우에만 사용되어야 합니다.

 

loop에서 Map의 key만 필요한 경우에는 keySet을 이용하여 순회하는 것이 좋습니다. 반면 key, value가 모두 필요한 경우라면, 양쪽 모두 접근할 수 있게 해주는 entrySet을 사용하여 순회하는 것이 더 효율적입니다.

규칙을 어긴 코드

public void doSomethingWithMap(Map<String,Object> map) {
  for (String key : map.keySet()) {  // 규칙을 어긴 코드; 키 값은 value를 얻기위해서만 사용되고 있습니다.
    Object value = map.get(key);
    // ...
  }
}

규칙을 준수한 해결책

Arrays.asList("a1", "a2", "b1", "c2", "c1").stream()
    .filter(...)
    .forEach(...);

int[] intArray = new int[]{1, 2, 3, 4};
Arrays.stream(intArray)
    .filter(...)
    .forEach(...);

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project