Java Streams

About this series

With the java.util.stream package, you can concisely and declaratively express possibly-parallel bulk operations on collections, arrays, and other data sources. In this series by Java Language Architect Brian Goetz, get a comprehensive understanding of the Streams library and learn how to use it to best advantage.

  • Article
    An introduction to the java.util.stream library

    Explore the Java Streams library, introduced in Java SE 8, in this series by Java Language Architect Brian Goetz. By taking advantage of the power of lambda expressions, the java.util.stream package makes it easy to run functional-style queries on collections, arrays, and other data sets.

  • Article
    Aggregating with Streams

    Learn how to use the java.util.stream package to aggregate and summarize data efficiently.

  • Article
    Streams under the hood

    Explore the Java Streams library, introduced in Java SE 8, in this series by Java Language Architect Brian Goetz. By taking advantage of the power of lambda expressions, the java.util.stream package makes it easy to run functional-style queries on collections, arrays, and other data sets. In this installment, learn how…

  • Article
    From concurrent to parallel

    This fourth installment of the Java Streams series identifies and explains factors that determine the effectiveness of parallel processing, putting them into historical and technical context. An understanding of these factors provides a foundation for making optimal use of the Streams library for parallel execution. (The next installment applies the…

  • Article
    Optimize stream pipelines for parallel processing

    Find out why some stream pipelines parallelize better than others, and see how to analyze your own streams code for parallel performance.