Back to courses
Functional Programming & Java Streams
Explore Java functional programming, from basics to advanced stream operations
Level: Mid, Senior Engineers
Nelson
Course by
Nelson
What you'll learn
Functional Programming
Pure Functions
Lambdas
Functional Interfaces
Combinator Pattern
Imperative vs Declarative
Streams API
Parallel Streams
Streams Working Principles
Are you looking to learn the latest techniques in Java functional programming? Look no further! Our comprehensive programming course covers everything you need to know, from the basics of functional programming and lambdas, to advanced topics like the Java functional interface package and java streams.
Java is a programming language that is designed to be object-oriented, which means that it uses a model of data and behavior that is organized around objects and their interactions. However, Java also supports functional programming, which is a programming paradigm that is based on the concept of functions. In functional programming, functions are first-class citizens, which means that they can be treated just like any other data type in the language. This allows for a more declarative style of programming, where the focus is on what needs to be done, rather than how it should be done.
In this course you will learn about:
The course is for anyone looking to deepen their knowledge of Functional programming and its application in real-world scenarios. This comprehensive course doesn't just focus on learning syntax but also explores the special features that Java has to offer, such as lambda expressions, method references, and map operations.
Functional programming is useful to increase the performance, scalability, robustness, and maintainability of any Java application. It can be used to solve various problems such as developing multiple threads or handling remote communication with Java's Stream API
Whether you're a beginner developer or a professional looking to improve your coding skills, this course will show you the big picture of functional programming and give you the techniques to implement it in your code.
Java is a programming language that is designed to be object-oriented, which means that it uses a model of data and behaviour that is organized around objects and their interactions.
However, Java also supports functional programming, which is a programming paradigm that is based on the concept of functions. In functional programming, functions are first-class citizens, which means that they can be treated just like any other data type in the language.
This allows for a more declarative style of programming, where the focus is on what needs to be done, rather than how it should be done.
This course has 18 sections including exercises
Welcome
Functional Programming Github Repo
1 - Functional Programming Repo
Getting Started
Functional Interfaces
1 - The Java util function package
2 - Function
3 - Chaining Functions
4 - BiConsumer
5 - Consumer
6 - Exercise
7 - BiConsumer Exercise
8 - Predicate and BiPredicates
9 - Supplier
10 - Other available functional interfaces
Extending Functional Interfaces
1 - Extending Functional Interfaces
2 - Combinator Pattern
3 - Using Combinator Pattern
Beyond Functions
1 - Javascript Callbacks
2 - Callbacks in Java
Functions Section Outro
1 - Functions Section Outro
2 - Streams Example
Getting Started With Streams
1 - Clone
2 - Codebase Walkthrough and Start Branch
3 - Java Streams
4 - How Streams Work
5 - Getting Started With Streams
6 - Exercise
7 - Imperative Solution
8 - Declarative Solution
9 - Visualize Streams
IntStreams and other Stream Types
1 - IntStreams
2 - Exercise
3 - Exercise Solution
4 - InsStream Iterate
5 - Other Types of Steams
Min and Max
1 - Finding Minimum Number
2 - Finding Maximum Number
Removing Duplicates
1 - Distinct
2 - Collecting to Set
Filtering Data
1 - Filter
2 - Take While
3 - Drop While
4 - Find First
5 - Find Any
6 - AllMatch and AnyMatch
Transformations
1 - Map
2 - Exercises
3 - Exercise Solution
4 - Reduce
5 - Exercise
6 - Exercise Sol
7 - Flatmap List of Lists
8 - Flatmap List of Optionals
Aggregate Functions
1 - Count
2 - Min Max without comparators
3 - Average and Sum
4 - Summary Statistics
5 - GroupBy (4:59)
6 - Grouping and Counting
Sorting Elements and Objects
1 - Sorting Elements (3:47)
2 - Sorting Objects
3 - Exercise
4 - Exercise Solution
Joining Strings
1 - Joining Strings Exercise
2 - Joining Strings Exercise Solution
Understanding Streams
1 - Understanding Collectors
2 - Collectors and Combiner
3 - Streams Are Lazy
4 - How Streams Process Data.cmproj
Course Outro
1 - Outro
2 - Favour
Amigoscode offers unique, practical, and industry-relevant programming courses taught by experienced instructors. We focus on real-world applications, giving you the skills you need to excel in your career.
Yes, many of our students purchase our courses through their company's training budget. Our courses are considered a valuable investment in employee skill development, and they can be expensed as part of your company's training and development initiatives.
Our courses are designed to bridge the gap between theory and practice. You'll gain hands-on experience, work on real projects, and build a portfolio that will impress employers and clients, opening up new opportunities for career growth.
Yes, we provide certificates of completion for all our courses. These certificates are recognized in the industry, and they can help you showcase your skills to potential employers or clients.
Absolutely! Amigoscode courses are self-paced, allowing you to learn at a speed that suits your schedule. You can revisit the material whenever you need, and you have lifetime access to the course content.
No, our courses are designed to accommodate all levels of learners. Whether you're a beginner looking to start your programming journey or an experienced developer wanting to enhance your skills, we have courses suitable for you.
We provide extensive support to our students through discord. You'll have access to a community of learners and can ask questions, share your progress, and collaborate with fellow students. In addition, our instructors are available to help with any challenges you encounter during the course.
We offer a 15-day refund policy. If you're not satisfied with your course within the first 15 days after purchase, we will provide a full refund, no questions asked. Your satisfaction is our priority.
Engage in a dynamic and interactive learning experience as you complete exercises and projects.