In this chapter, we covered a lot of ground in the area of the new features introduced with Java 9. First, we looked at many ways to stream filtering, starting with the basic filter() method and ending up using the Stream API additions of JDK 9. Then, you learned a better way to analyze the stack trace using the new StackWalker class. The discussion was illustrated by specific examples that help you to see the real working code.
We used the same approach while presenting new convenient factory methods for creating immutable collections and new capabilities for asynchronous processing that came with the CompletableFuture class and its enhancements in JDK 9.
We ended this chapter by enumerating the improvements to the Stream API--those we have demonstrated in the filtering code examples and the new iterate() method.
Overall, we have shown the richness of Java APIs that has...