문제가 주어졌을 때, for문/ Stream/ 향상된 for문 3가지 방법을 각각 사용하여 풀이하는 연습을 해보았다.
for문 사용시
어려웠던 점 :
1. 문제에서 주어진 메소드명이 새로운 해시맵명 이라고 착각해서 새로운 해시맵은 이미 만들어졌다고 생각했음. -> 메서드명에 대한 개념과 형태에 대해 이해하자.
--> 문제에서 바라는 것은 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;
글 잘 봤습니다^^