본문 바로가기
TIL & WIL

[TIL] #34. 231017

by mmm- 2023. 10. 17.

어제 목표 & 오늘 완료한 한 일 

  • 알고리즘 문제
  • 자바 종합 강의 (4주차)
  • 자바 종합 강의 (5주차)


내일 목표

  • 알고리즘 문제
  • 자바 개인과제
  • 자바 종합 강의 복습 (1주차)

 

발생한 문제와 해결

5주차 과제 진행 중에 2 문제 푸는 동안 에러가 발생했다. 코드는 아래와 같이 작성했고,

double sum = bookList.stream().filter(book -> book.getCategory().equals("IT"))
                .map(book -> book.getPrice()).sum();

발생한 에러는 다음과 같았다.

Cannot resolve method 'sum' in 'Stream'

숫자형으로 변환해주지 않고 sum()을 사용하려고 해서 에러가 발생한 것 같았다. 그래서 아래와 같이 코드를 수정해줬다.

그리고 다른 한 문제는 이와 같이 코드를 작성하였고,

double maxPrice = bookList.stream().
                mapToDouble(book -> book.getPrice()).max();

이러한 에러가 발생하였다.

Change variable 'maxPrice'type to 'OptionalDouble'

double을 OptionalDouble로 수정하면 에러가 해결되는 듯 했지만, 문제에서 의도한 바는 이것이 아닌 것 같아 다른 원인을 찾기 위해 노력했다. 하지만 다른 방법을 찾지 못해 정답 코드를 확인했다. 정답코드에서 제시한 방법은 getAsDouble() 메서드를 사용하는 것이었다. getAsDouble() 메서드는 처음봤는데 서치해본 결과, OptionalDouble에서 double 값을 반환해주는 메서드 라는 것 같다. (https://kimfk567.tistory.com/139)

 

느낀점

오늘은 자바 문법 종합 강의를 통해 예외, 제네릭, 컬렉션, wrapper 클래스, 프로세스와 스레드 등등.. 을 배웠다. 이것들을 이미 배운 상태였지만, 그래도 배우는 데 어려움이 있었던 것 같다.. 그 중에서 람다, 스트림은 알고리즘 문제를 풀면서 많이 봤던 것들이라 대충은 알고 있어 쉽게 이해하고 빠르게 넘어갈 수 있을 것이라 생각했는데 스트림은 그래도 비교적 쉽게 이해하고 사용할 수 있었지만, 람다는 잘 모르겠다. 

 

어제했던 3주차 과제는 그래도 틀을 잡고 어느정도 코드를 완성할 수 있었는데, 4주차 과제는 거의 아무것도 건들이지 못했다. 그냥 문제 자체를 잘 모르겠는... 그리고 5주차 과제에서는 몇 가지 모르는 문제가 있었고 몇 문제는 푸는 동안 에러가 발생했다.

'TIL & WIL' 카테고리의 다른 글

[TIL] #36. 231019  (0) 2023.10.19
[TIL] #35. 231018  (0) 2023.10.19
[TIL] #33. 231016  (0) 2023.10.16
[WIL] #5. 231009~231015  (0) 2023.10.15
[TIL] #32. 231015  (0) 2023.10.15