Functional Programming with Streams in Java 9

Course

Online

£ 200 VAT inc.

Description

  • Type

    Course

  • Methodology

    Online

  • Start date

    Different dates available

Improve your Java 9 programs using functional techniques.Java 8 introduced a wealth of new features, pushing Java towards the so-called functional programming paradigm. Benefits from this shift include succinctness and ease in developing robust, multi-threaded applications. In this course, we introduce the key functional features of Java 8 and 9, and explain how they can be used to write code that is more expressive and amenable to parallelization. Specifically, we will first discuss lambda functions and functional interfaces. Using these features, programmers can easily create objects that offer a single specific service, similar to anonymous classes. We will also explore the predefined functional interfaces that can be found in the Java API, starting with well-known, pre-existing ones such as Comparator and Runnable. Reaping the full benefits of lambda functions requires employing them with streams, a new kind of collection with built-in parallelization support. We will examine the relationship between streams and collections, and how the latter have changed as a result of the new language features. Finally, after having mastered the key features of streams, we will explore the details of parallel execution, such as the crucial notion of side-effects and the fork-join execution model.About the Author
.
Marco Faella is a professor of Computer Science at the University of Naples "Federico II", Italy. He has taught classes on Java programming, compiler construction, and software engineering to undergraduate and graduate students since 2005. He is the author of over 50 scientific publications in international conferences and journals. He has also developed scientific software in C++, OCaml, Python, and Java. Marco is fluent in C, C++, OCaml, Python, and Java and has contributed to the Parma Polyhedra Library, a well-known scientific library for the symbolic manipulation of polyhedra

Facilities

Location

Start date

Online

Start date

Different dates availableEnrolment now open

About this course

Understand the principles of functional programming and how they contribute to safe parallelism
Understand the new features of Java interfaces, including the notion of the functional interface
Use lambda expressions and functional interfaces as a lean alternative to anonymous classes
Use streams to perform computations on sequences of data
Use streams to seamlessly perform parallel computations with the Java 9 SDK
Using streams to perform computations on sequences of data
Using streams to seamlessly perform parallel computations with the Java 9 SDK

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

This centre's achievements

2021

All courses are up to date

The average rating is higher than 3.7

More than 50 reviews in the last 12 months

This centre has featured on Emagister for 4 years

Subjects

  • Benefits
  • Java API
  • Java
  • Installation
  • Calculus
  • Programming
  • Install
  • Programming Application
  • Information Systems
  • Information Systems management

Course programme

Introducing Functional Programming 5 lectures 32:43 The Course Overview This video provides an overview of the entire course. Installation and Setup This video covers downloading and installing the required software and setup.
  • Download Java SE JDK
  • Install Java SE JDK
  • Download and install Eclipse IDE
What Is Functional Programming? What is functional programming and what are its origins? What are its main principles?
  • The origins of functional programming trace back to lambda-calculus
  • The whole program is a mathematical function
  • Functions are stateless and use no variables
Interfaces get a Boost What are the new capabilities of Java interfaces? What are default methods? How can we take advantage of these capabilities?
  • Interfaces can have default and static methods
  • Interfaces can carry behaviour but not state
  • The Comparator interface features default and static methods
Some Interfaces are More Functional Than Others What is a functional interface? What are some functional interfaces in the Java API? How can we declare that an interface is functional?
  • Functional interfaces have a single abstract method
  • The API contains over 40 functional interfaces
  • The @FunctionalInterface annotation identifies pure functional interfaces
Introducing Functional Programming 5 lectures 32:43 The Course Overview This video provides an overview of the entire course. Installation and Setup This video covers downloading and installing the required software and setup.
  • Download Java SE JDK
  • Install Java SE JDK
  • Download and install Eclipse IDE
What Is Functional Programming? What is functional programming and what are its origins? What are its main principles?
  • The origins of functional programming trace back to lambda-calculus
  • The whole program is a mathematical function
  • Functions are stateless and use no variables
Interfaces get a Boost What are the new capabilities of Java interfaces? What are default methods? How can we take advantage of these capabilities?
  • Interfaces can have default and static methods
  • Interfaces can carry behaviour but not state
  • The Comparator interface features default and static methods
Some Interfaces are More Functional Than Others What is a functional interface? What are some functional interfaces in the Java API? How can we declare that an interface is functional?
  • Functional interfaces have a single abstract method
  • The API contains over 40 functional interfaces
  • The @FunctionalInterface annotation identifies pure functional interfaces
The Course Overview This video provides an overview of the entire course. The Course Overview This video provides an overview of the entire course. The Course Overview This video provides an overview of the entire course. The Course Overview This video provides an overview of the entire course. This video provides an overview of the entire course. This video provides an overview of the entire course. Installation and Setup This video covers downloading and installing the required software and setup.
  • Download Java SE JDK
  • Install Java SE JDK
  • Download and install Eclipse IDE
Installation and Setup This video covers downloading and installing the required software and setup.
  • Download Java SE JDK
  • Install Java SE JDK
  • Download and install Eclipse IDE
Installation and Setup This video covers downloading and installing the required software and setup.
  • Download Java SE JDK
  • Install Java SE JDK
  • Download and install Eclipse IDE
Installation and Setup This video covers downloading and installing the required software and setup.
  • Download Java SE JDK
  • Install Java SE JDK
  • Download and install Eclipse IDE
This video covers downloading and installing the required software and setup.
  • Download Java SE JDK
  • Install Java SE JDK
  • Download and install Eclipse IDE
This video covers downloading and installing the required software and setup.
  • Download Java SE JDK
  • Install Java SE JDK
  • Download and install Eclipse IDE
What Is Functional Programming? What is functional programming and what are its origins? What are its main principles?
  • The origins of functional programming trace back to lambda-calculus
  • The whole program is a mathematical function
  • Functions are stateless and use no variables
What Is Functional Programming? What is functional programming and what are its origins? What are its main principles?
  • The origins of functional programming trace back to lambda-calculus
  • The whole program is a mathematical function
  • Functions are stateless and use no variables
What Is Functional Programming? What is functional programming and what are its origins? What are its main principles?
  • The origins of functional programming trace back to lambda-calculus
  • The whole program is a mathematical function
  • Functions are stateless and use no variables
What Is Functional Programming? What is functional programming and what are its origins? What are its main principles?
  • The origins of functional programming trace back to lambda-calculus
  • The whole program is a mathematical function
  • Functions are stateless and use no variables
What is functional programming and what are its origins? What are its main principles?
  • The origins of functional programming trace back to lambda-calculus
  • The whole program is a mathematical function
  • Functions are stateless and use no variables
What is functional programming and what are its origins? What are its main principles?
  • The origins of functional programming trace back to lambda-calculus
  • The whole program is a mathematical function
  • Functions are stateless and use no variables
Interfaces get a Boost What are the new capabilities of Java interfaces? What are default methods? How can we take advantage of these capabilities?
  • Interfaces can have default and static methods
  • Interfaces can carry behaviour but not state
  • The Comparator interface features default and static methods
Interfaces get a Boost What are the new capabilities of Java interfaces? What are default methods? How can we take advantage of these capabilities?
  • Interfaces can have default and static methods
  • Interfaces can carry behaviour but not state
  • The Comparator interface features default and static methods
Interfaces get a Boost What are the new capabilities of Java interfaces? What are default methods? How can we take advantage of these capabilities?
  • Interfaces can have default and static methods
  • Interfaces can carry behaviour but not state
  • The Comparator interface features default and static methods
Interfaces get a Boost What are the new capabilities of Java interfaces? What are default methods? How can we take advantage of these capabilities?
  • Interfaces can have default and static methods
  • Interfaces can carry behaviour but not state
  • The Comparator interface features default and static methods
What are the new capabilities of Java interfaces? What are default methods? How can we take advantage of these capabilities?
  • Interfaces can have default and static methods
  • Interfaces can carry behaviour but not state
  • The Comparator interface features default and static methods
What are the new capabilities of Java interfaces? What are default methods? How can we take advantage of these capabilities?
  • Interfaces can have default and static methods
  • Interfaces can carry behaviour but not state
  • The Comparator interface features default and static methods
Some Interfaces are More Functional Than Others What is a functional interface? What are some functional interfaces in the Java API? How can we declare that an interface is functional?
  • Functional interfaces have a single abstract method
  • The API contains over 40 functional interfaces
  • The @FunctionalInterface annotation identifies pure functional interfaces
Some Interfaces are More Functional Than Others What is a functional interface? What are some functional interfaces in the Java API? How can we declare that an interface is functional?
  • Functional interfaces have a single abstract method
  • The API contains over 40 functional interfaces
  • The @FunctionalInterface annotation identifies pure functional interfaces
Some Interfaces are More Functional Than Others What is a functional interface? What are some functional interfaces in the Java API? How can we declare that an interface is functional?
  • Functional interfaces have a single abstract method
  • The API contains over 40 functional interfaces
  • The @FunctionalInterface annotation identifies pure functional interfaces
Some Interfaces are More Functional Than Others What is a functional interface? What are some functional interfaces in the Java API? How can we declare that an interface is functional?
  • Functional interfaces have a single abstract method
  • The API contains over 40 functional interfaces
  • The @FunctionalInterface annotation identifies pure functional interfaces
What is a functional interface? What are some functional interfaces in the Java API? How can we declare that an interface is functional?
  • Functional interfaces have a single abstract method
  • The API contains over 40 functional interfaces
  • The @FunctionalInterface annotation identifies pure functional interfaces
What is a functional interface? What are some functional interfaces in the Java API? How can we declare that an interface is functional?
  • Functional interfaces have a single abstract method
  • The API contains over 40 functional interfaces
  • The @FunctionalInterface annotation identifies pure functional interfaces
Lambda Expressions 4 lectures 42:08 Writing Your First Lambda Expression What is the basic syntax for lambda expressions? How are lambda expressions related to anonymous classes? What parts of a lambda expression can be omitted?
  • Lambda expressions are characterized by the new “arrow” notation
  • Some anonymous classes can be replaced by lambda expressions
  • Parameter types of lambda expressions can often be omitted
Typing Lambda Expressions What is type inference and how does it apply to lambda expressions? What are the legal contexts for a lambda expression?
  • The compiler fills in missing types using type inference
  • Type inference can derive parameter types for lambda expressions
  • Lambda expressions can appear where a functional interface is expected
Capturing Values What variables can lambda expressions access? Does every usage of a lambda expression give rise to a new object?
  • Lambda expressions can access variables from the enclosing scopes
  • Captured local variables must be effectively final
  • Lambda expressions are instantiated only when necessary
Method References What are method references? What are method references useful for?
  • A method reference is an expression denoting a method
  • Method references can be used in place of lambda expressions
  • Method references bridge existing methods with functional interfaces
Lambda Expressions What are the functional interfaces that were already present in Java 7? Can they be used as targets of lambda expressions?
  • Java 7 has several common functional interfaces
  • Functional interfaces pertain to threads, GUIs, and object sorting
  • Comparator is a notable pure functional interface
Pre-Existing Functional Interfaces What are the functional interfaces that were already present in Java 7? Can they be used as targets of lambda expressions?
  • Java 7 has several common functional interfaces
  • Functional interfaces pertain to threads, GUIs, and object sorting
  • Comparator is a notable pure functional interface
Pre-Existing Functional Interfaces What are the functional interfaces that were already present in Java 7? Can they be used as targets of lambda expressions?
  • Java 7 has several common functional interfaces
  • Functional interfaces pertain to threads, GUIs, and object sorting
  • Comparator is a notable pure functional interface
Pre-Existing Functional Interfaces What are the functional interfaces that were already present in Java 7? Can they be used as targets of lambda expressions?
  • Java 7 has several common functional interfaces
  • Functional interfaces pertain to threads, GUIs, and object sorting
  • Comparator is a notable pure functional interface
What are the functional interfaces that were already present in Java 7? Can they be used as targets of lambda expressions?
  • Java 7 has several common functional interfaces
  • Functional interfaces pertain to threads, GUIs, and object sorting
  • Comparator is a notable pure functional interface
What are the functional interfaces that were already present in Java 7? Can they be used as targets of lambda expressions?
  • Java 7 has several common functional interfaces
  • Functional interfaces pertain to threads, GUIs, and object sorting
  • Comparator is a notable pure functional interface
New Functional Interfaces What functional interfaces were added to Java 8?
  • Java 8 features a new package with more than 40 functional interface
  • New functional interfaces cover all common function types
  • Special versions of such interfaces are devoted to primitive types
New Functional Interfaces What functional interfaces were added to Java 8?
  • Java 8 features a new package with more than 40 functional interface
  • New functional interfaces cover all common function types
  • Special versions of such interfaces are devoted to primitive types
New Functional Interfaces What functional interfaces were added to Java 8?
  • Java 8 features a new package with more than 40 functional interface
  • New functional interfaces cover all common function types
  • Special versions of such interfaces are devoted to primitive types
New Functional...

Additional information

Basic Knowledge of Java is required

Functional Programming with Streams in Java 9

£ 200 VAT inc.