Stream.iterate(seed, hasNext, next) tests the predicate BEFORE emitting, so "while not the last page" never emits the last page. Walking until the next page is null keeps it. This one silently loses data in production.
Run this yourself in the Online Java Compiler, spin up a live REST API in the API Sandbox, or practise with Java interview questions.
Published 2026-09-20