1. 문제 상황

다음과 같이 맵의 요소들을 필터링하려 하였음

List<Quest> onGoingQuests = Quest.QUESTS.entrySet().stream()
                .filter((key, value) -> value.get // 아무것도 제시되지 않음)

해당 맵은 HashMap<String, Quest>의 형태였고 밸류인 Quest객체의 getter를 통해 필드 값을 검사하여 필터링을 하고자 하였지만 IDE에서 아무런 메서드도 제시해 주지 않았음

2. 문제 원인

문제는 정말 단순하게, 필터 메서드는 람다식으로 단일 인자를 받아야 한다는 것이었음

즉 (key, value) 형태가 아니라, entry 그 자체를 인자로 넘겨야 함

3. 문제 해결

인자를 수정하여 필터링 로직을 완성하였음

List<Quest> onGoingQuests = Quest.QUESTS.entrySet().stream()
                        .filter(entry -> entry.getValue().getStatus() == QuestStatus.ONGOING)
                        .map(entry -> entry.getValue())
                        .collect(Collectors.toList());