for문/ Stream/ 향상된 for문

김하밍·2023년 5월 7일
0

Java

목록 보기
3/46

문제가 주어졌을 때, for문/ Stream/ 향상된 for문 3가지 방법을 각각 사용하여 풀이하는 연습을 해보았다.

for문 사용시

어려웠던 점 :
1. 문제에서 주어진 메소드명이 새로운 해시맵명 이라고 착각해서 새로운 해시맵은 이미 만들어졌다고 생각했음. -> 메서드명에 대한 개념과 형태에 대해 이해하자.

  1. 주어진 기존 hashMap 에 str 이라는 키가 존재한다면
    --> 새로 만든 newHashMap 에 해당 str 을 가져오고
    --> hashMap 에 키로 str을 넣었을 때의 키값을 뽑아와서
    --> newHashMap 의 키값으로 넣어준다.
    로 이해하는 것이 맞는데, hashMap.put(str, hashMap.get(str)) 으로 문제 풀이가 끝난다고 착각했음.

--> 문제에서 바라는 것은 hashMap 에 str을 넣었을 때 나오는 키값까지 얻어낸 후에 그것들을 추출해서 새로운 해시맵으로 구성하는 것
--> 주어진 해시맵의 모든 키들이 주어진 배열의 요소 전부는 아닐 수도 있기 때문에 주어진 해시맵에서 배열의 요소가 키로 있는 키들만 뽑아내는 것이다.
--> 즉, 주어진 해시맵에서 추출되지 않는 나머지 키들이 있는 것.

for (int i = 0; i < arr.length; i++) { //초기화; 조건식; 증감식
      String str = arr[i];		// 문자열 str에 배열의 요소 할당								
      if (hashMap.containsKey(str)) { // 문자열 str 을 Key로 갖고있는지 없는지 확인
        newHashMap.put(str, hashMap.get(str)); // if문의 조건식이 true 라면, 새로운 해시맵에 전 해시맵의 키와, 키값을 가져와서 넣어준다.
      }
    }
    return newHashMap;
  }
}

Stream 사용시

코드를 입력하세요

향상된 for문 사용시

    for (String str : arr) {
      if (hashMap.containsKey(str)) {
        newHashMap.put(str, hashMap.get(str));
      }
    }
    return newHashMap;
  • for문, Stream문, 향상된 for문은 시작하는 형태가 서로 다르고, 메서드 바디 코드 역시 구현 방식이 다르다.
  • 하지만, 결과는 같으니 3가지 형식 모두 사용할 수 있도록 연습하자.
profile
나만의 언어로 기록하며 성장하기 !

2개의 댓글

comment-user-thumbnail
2023년 5월 17일

글 잘 봤습니다^^

1개의 답글