문제
- 자바 문법 종합반 마지막 강의 숙제
1-1. stream를 사용해서 List의 배열을 조회해서 보여줘야하는데,
double maxPrice = bookList.stream().mapToDouble(Book::getPrice).max()
여기에서 오류가 계속 남.
시도
- mapToDouble이 스트림을 DoubleStream 으로 변환해주는 메서드라고 나와있어서 했는데 잘 안됨. 이게 문제인지는 모르겠어서 다른 거 해봄
1-1. max() 이게 max 값을 의미하는 거라고 하는데 일단 stream에 대한 이해가 별로 잘 안되서 조금 더 공부를 해봐야 할 것으로 보임.
해결
- double maxPrice = bookList.stream().mapToDouble(Book::getPrice).max().getAsDouble(); 이였음...
알게 된 점
- 객체에서 값을 얻기 위해서는 get(), getAsDouble(), getAsInt(), getAsLong()를 호출해야한다고 한다. mapToDouble은 그저 스트림을 DoubleStream으로 변환시켜줄 뿐이고 sum(), count(), average(), max(), min() 등의 집계 메서드에서는 값으로 지정하려면 위의 메서드들을 사용해야한다.