Skip to content

Latest commit

 

History

History
60 lines (46 loc) · 2.6 KB

File metadata and controls

60 lines (46 loc) · 2.6 KB

Java8InAction

This repository contains all the source code for the examples and quizzes in the book Java 8 in Action: Lambdas, Streams and functional-style programming.

You can purchase the book here: http://manning.com/urma/ or on Amazon

The source code for all examples can be found in the directory src/main/java/lambdasinaction

  • Chapter 1: Java 8: why should you care?
  • Chapter 2: Passing code with behavior parameterization
  • Chapter 3: Lambda expressions
  • Chapter 4: Working with Streams
  • Chapter 5: Processing data with streams
  • Chapter 6: Collecting data with streams
  • Chapter 7: Parallel data processing and performance
  • Chapter 8: Refactoring, testing, debugging
  • Chapter 9: Default methods
  • Chapter 10: Using Optional as a better alternative to null
  • Chapter 11: CompletableFuture: composable asynchronous programming
  • Chapter 12: New Date and Time API
  • Chapter 13: Thinking functionally
  • Chapter 14: Functional programming techniques
  • Chapter 15: Blending OOP and FP: comparing Java 8 and Scala
  • Chapter 16: Conclusions and "where next" for Java
  • Appendix A: Miscellaneous language updates
  • Appendix B: Miscellaneous library updates
  • Appendix C: Performing multiple operations in parallel on a Stream
  • Appendix D: Lambdas and JVM bytecode We will update the repository as we update the book. Stay tuned!

Make sure to have JDK 11 (or newer) installed

The 2nd-edition examples use APIs introduced after Java 8 (e.g. Optional.or, Optional.stream, Collectors.flatMapping/filtering, Stream.takeWhile), so the project targets Java 11 (maven.compiler.release=11 in pom.xml). A JDK 11 or later distribution is required to build. You can download a JDK from Eclipse Temurin (Adoptium) or Oracle Java.

$ java -version

openjdk version "11.0.22" 2024-01-16 OpenJDK Runtime Environment (build 11.0.22+7) OpenJDK 64-Bit Server VM (build 11.0.22+7, mixed mode)

Compile/Run the examples

Using maven:

$ mvn compile

$ cd target/classes

$ java lambdasinaction/chap1/FilteringApples

Alternatively you can compile the files manually inside the directory src/main/java

You can also import the project in your favorite IDE: * In IntelliJ use "File->Open" menu and navigate to the folder where the project resides * In Eclipse use "File->Import->Existing Maven Projects" (also modify "Redundant super interfaces" to report as Warnings instead of Errors * In Netbeans use "File->Open Project" menu