Exercises to learn lambda syntax + the Streams API from the upcoming JDK 8 release
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.gitignore Minor fixes to Javadoc and add a license statement Oct 8, 2013
LICENSE.txt Add License File May 13, 2013
README.md Try out build status in another position. Feb 16, 2014


Lambda Tutorial Build Status

A set of exercises to teach use of Java 8 lambda syntax, and the new Streams API.

To follow the exercises:

  • fork and clone the repository
  • ensure you have a correctly configured, lambda-enabled Java build
    • Maven can help generate configuration for your favourite IDE, though you will likely have to set the JDK manually
    • ensure your cloned project, particularly the class ConfigureYourLambdaBuildOfJdk compiles and runs correctly
  • navigate to the first exercise, Exercise_1_Test (tests are in src/test/java, in the package org.adoptopenjdk.lambda.tutorial)
  • read background information in the JavaDoc, and follow instructions, making the test pass
  • to find solutions check out different branches of the project. Two flavours of solutions are available: what it might have looked like before JDK 8, and what it might look like after JDK 8. Those are in branches solutions-prejava8 and solutions-postjava8 respectively.


  1. Internal vs External Iteration (the forEach method)
  2. Filtering and Collecting
  3. Mapping
  4. Method References

[More to come]

Getting Lambda JDK

Early access builds of JDK 8 are available here.

Lamba JDK Build Compatibility

The current tutorial is known to work with the following JDK build:

JDK Build Number Released On
ea b109 Sep 26, 2013

lambda-tutorial will try to track against the newest version available. If you find that you are working with a newer version of the Lambda JDK and the tutorial does not compile or run, please file an issue.

IDE Setup

Note: we are hoping the instructions are not too sensitive to the OSes on which they have been performed.