Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Andrii Piatakha and Learn IT University

From this course, you can learn Java Collections Framework, together with Generics, Lambda Functions, Method References, and Stream API.

There are a lot of other courses on this topic. So, why would you choose exactly this course?  Here are just a few reasons:- Coding examples

To learn to program is not enough just watching videos and reading books. You also need to have a lot of practice. In this training course, you will review multiple practical tasks and coding examples which will help you learn and understand Java better.

- Open source code

Read more

From this course, you can learn Java Collections Framework, together with Generics, Lambda Functions, Method References, and Stream API.

There are a lot of other courses on this topic. So, why would you choose exactly this course?  Here are just a few reasons:- Coding examples

To learn to program is not enough just watching videos and reading books. You also need to have a lot of practice. In this training course, you will review multiple practical tasks and coding examples which will help you learn and understand Java better.

- Open source code

We hide nothing from our students.  Including the source code for the home task solutions and source code of examples that were shared during the lesson. Having the source code you can just copy and paste it to run it on your local computer to understand how things work better.

You are allowed to use all source code examples for learning purposes. This helps significantly to configure the environment and make tests work, especially in case students didn't work with any testing framework in the past.

- Q&A support 

The significant difference between the online and offline learning process is the instructor's availability. If you are in one room with a tutor he always can help you to get understand the specific concept or to help fix your code on your computer. In this course, we are supporting students with answers to any questions flagged in the Q&A section. In case there will be recurring questions - separate video lessons will be created to show how to address the issue.

So with this course you are not just getting video materials, code exercises, source code, access to the free mobile application without limits (which is still pretty cool, huh? :) ), but you also get tutor support and answers to your questions along with this course. - Relevant knowledge

After our team investigated other Java courses on Udemy we realized that most of them have nothing in common with real life. The information which is shared there is very old and significantly out of date. For example, the instructor teaches a framework which is not been used already for 15 years. Or instructors do stress on the programming design which is not used anymore at all.

The instructor of this course is a consultant in a top-rated IT outsourcing company and helps to bring cutting-edge solutions in IT for all his clients. Feel free to check the LinkedIn page of the instructor and check skills endorsement. More than 19 thousand people across all over the world (BTW most of them are from the top 100 companies of the world) evaluated the skills of Andrii Piatakha.

With this course, you can be sure that you will spend your time learning the right things from one of the best IT consultants in the world.

- Free mobile App without limits for our students

Knowing Java is one skill. Be able to pass interviews in the company - that is another skill :) Nowadays a lot of companies use tests to select candidates on the first level of interview. We developed applications to practice skills specifically for such purposes.

In this course, we will provide you link to download our FREE mobile app for android. (soon it will be also available for iOS platforms)

The instructor of this course comes up with hundreds of tests that are used to test the knowledge of candidates. With this application, you will be well-prepared for the interview.

Also, only for our students - there is no limit on attempts to pass certification. In the course, we will tell you how to set up a special bonus code that will remove restrictions for our students inside the app.

- High concentration of useful material in each lesson

Sometimes you can notice that watching 5 minutes of our lesson is equivalent to watching another 30 minutes lesson.

This is because time spent for preparation for the lesson (script for the lesson, lesson structure) and video editing (to cut boring pieces of the lesson or time when the program loads) sometimes 10 times as much (sometimes even 20) as the final lesson duration after video editing.

Also, each topic is separated from another. In case some concept will be explained in the next lesson and you don't need to worry about understanding this in the scope of this lesson - the instructor will make an announcement when a specific topic will be covered.

Go and try it yourself.  We will appreciate your feedback.

So don't wait. Take a look at the lessons' preview if you still have doubts.

Buy this course today, and you will get all updates for FREE.

For those who successfully passed this training course, or for students who were recognized for asking amazing questions, there is a special offer from the IT-Bulls company. The creator of this course is IT-Bulls company CEO and Founder. We are always in search of talents to run our amazing startups together with you. Probably you always dreamed about running your startup? In this course, you will be able to find the team who will teach you how to do that and (in particular cases) will be glad to help with implementation.

Hope you enjoy this course. And remember, we appreciate all your feedback. Your feedback will help us to become even better.  Your feedback will help us to create to best Java course ever.

See you at the lessons.  :)

Enroll now

What's inside

Learning objectives

  • Java collections framework
  • Different colelctions from collection hierarchy
  • Different containers from map hierarchy
  • Real-life examples of using collections
  • Iterable & iterator
  • Hash tables
  • Binary tree based collections
  • Functional programming
  • Functional programming with collections
  • Generics in java
  • Stream api
  • How to write clear and concise code in java with the help of lambdas and stream api while working with collections
  • Show more
  • Show less

Syllabus

Introduction

From this lecture you will learn:

• How to communicate during this course

• Where to ask questions

• How to ask questions

• Communication channels

Read more

From this lecture you will learn:

• Where to find good tests to verify your knowledge

• How to get unlimited access to Learn IT application (only for my students from Udemy)

From this lecture you will learn:
• What does JCF consist of

• Collections VS arrays

• Advantages of collections over arrays

• Collection VS Map

From this lecture you will learn:
• Collection interface: Overview

• UML: Class diagram

• Collection: abstract methods

• Collection: default methods

• Collection: source code

From this lecture you will learn:
• Main descendants of Collection interface

• Class diagram of Collection hierarchy

• List Interface: Overview

• Set Interface: Overview

• Queue Interface: Overview

• FIFO Principle

From this lecture you will learn:
• Eclipse – Investigate Hierarchy

• ArrayList

• Vector

• CopyOnWriteArrayList

• Stack

• Marker interface: Random Access

• Real examples of using list implementations

• Comparison of List implementations

From this lecture you will learn:
• How LinkedList works

• Source code review of the LinkedList class

• How to use generics

• Diamond operator

• Big O Notation

• LinkedList VS ArrayList

• When to use specific List implementation

• Homework

From this lecture you will learn:
• What is Comparator

• How to sort elements in List

• What is Comparable

• Difference between compare & compareTo methods

• Where to use Comparable and Comparator

• Quick Sort Algorithm

From this lecture you will learn:
• Iterable

• Iterator

• Exceptions thrown by iterator

• Three types of iterator

• Fail-fast iterator

• Fail-safe iterator

• Weakly consistent iterator

• Practice with iterator

• List iterator

• Homework

From this lecture you will learn:
• Queue interface

• Dequeue Interface

• FIFO

• LIFO

• Source code overview

• Practical tips of using queues

• The most popular implementations of Queue and Deque interface

• PriorityQueue

From this lecture you will learn:

• Map Hierarhcy

• Overview of Map implementations

• SortedMap Interface

• NavigableMap Interface

• Dictionary

• Hashtable class vs HashMap class

• Methods of Map interface

• Entry type

From this lecture you will learn:
• What is hash table

• How does hash table work

• equals() and hashCode()

• HashMap

• Initial capacity and load factor

• Practice with HashMap

• Immutable keys and how to lost value in map

• Sort Map by keys

• Sort Map by values

From this lecture you will learn:
• LinkedHashMap

• access-order vs insertion-order in LinkedHashMap

• What is a cache

• How to limit number of elements in LinkedHashMap

• Homework - LRU Cache

From this lecture you will learn:
• SortedMap Interface

• NavigableMap interface

• TreeMap practice

• Binary tree

• Red-Black binary tree

• Big O notation of operations in TreeMap

From this lecture you will learn:

• Set hierarchy

• Overview of Set Implementations

• HashSet

• LinkedHashSet

• TreeSet

• Thread safe implementations of Set

• EnumSet

• Practice with HashSet

• java.util.Collections

• Unmodifiable and Synchronized wrappers

From this lecture you will learn:
• Why do we need generics

• Generics in Java

• Diamond Operator

• How generics work

• Generic method

• Generic class

• Bounded generics

• Multiple bounds

• Wildcards

• Upper Bounded Wildcard

• Lower Bounded Wildcards

• Raw types

• Type erasure

The Quiz covers content from the following lessons:

  • Java Collections Framework: Overview

  • Collection Interface

  • List, Set, Queue - High Level overview

  • List implementations: ArrayList, LinkedList, Vector, Stack, CopyOnWriteArrayList

  • LinkedList, ArrayList VS LinkedList, Big O Notation, Homework

  • Comparator and Comparable

  • Iterable, Iterator & ListIterator

  • Queue & Deque

  • Map Hierarchy

  • Hash tables and hash map

  • LinkedHashMap

  • SortedMap, NavigableMap & TreeMap

  • Set Implementations

  • Generics in Java

From this lecture you will learn:
• What is functional programming

• Main concepts of functional programming

• Advantages and disadvantages of functional programming

• Imperative VS Declarative programming

• Function vs Method

• Functional Programming in Java

• java.util.function package

From this lecture you will learn:
• What is ‘Functional Interface’

• How to create custom functional interface

• Lambda function

• Method reference

• Practice

From this lecture you will learn:
• Function interface

• BiFunction interface

• Lambda function and method reference to implement Function

• andThen() method

• compose() method

• identity() method

• Comparator.comparing()

• Practice with Map implementations, Function and BiFunction

From this lecture you will learn:
• Consumer Interface

• BiConsumer interface

• Iterator.forEachRemaining()

• Map.foreach()

• Collection.removeIf()

• Predicate Interface

• Predicate.and()

• Predicate.or()

• Predicate.negate()

• Predicate.isEqual()

• Predicate.not()

• BiPredicate Interface

From this lecture you will learn:
• What Stream API is

• java.util.stream package

• When to use Stream API

• Conveyor belt

• Terminal operations

• Non-terminal operations

• How to create stream from array

• How to convert list to map

• parallelStream()

• Examples

The Quiz covers content from the following lessons:

  • Functional Programming in Java - Overview

  • Functional Interface, Lambda Functions & Method References

  • Function & BiFunction: Theory & Practice

  • Consumer, BiConsumer, Predicate & BiPredicate

  • Stream API

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers generics, lambda functions, and the Stream API, which are essential for modern Java development and writing concise, readable code
Includes practical tasks and coding examples, which reinforces learning and helps developers apply concepts to real-world scenarios
Provides access to open-source code for examples and solutions, which allows learners to experiment and understand the underlying implementation
Offers Q&A support and video lessons addressing recurring questions, which enhances the learning experience and provides personalized assistance
Includes interview preparation materials and a mobile app with practice tests, which helps learners prepare for job interviews
Teaches data structures and algorithms, such as hash tables and binary trees, which are fundamental concepts in computer science

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Comprehensive java collections and streams

According to students, this course offers a comprehensive and deep dive into the Java Collections Framework, Generics, Lambdas, and the Stream API. Learners consistently praise the clarity of the explanations and the abundance of practical coding examples and exercises that help solidify understanding. A significant positive highlighted by many is the dedicated section and accompanying mobile app for interview preparation, making the course highly relevant for career advancement. While the course is generally well-received, some students note that a solid foundation in core Java is beneficial to keep up with the pace.
Course assumes some prior Java knowledge.
"While excellent, this course is definitely not for absolute beginners. You need a solid understanding of basic Java syntax."
"I struggled a bit with the pace initially as I was rusty on some core Java concepts."
"It helps if you are already familiar with object-oriented principles before starting this course."
"Make sure you have a good grasp of Java fundamentals before diving into collections and streams here."
Source code is readily available for practice.
"Having access to the source code for examples and homework solutions was incredibly convenient and helpful for testing."
"I could easily run the code on my local machine to better understand how things worked."
"The availability of the source code accelerates the learning process by allowing direct experimentation."
"Copying and pasting the source code made setting up the environment and running tests straightforward."
Instructor provides helpful Q&A support.
"The instructor was very responsive in the Q&A section, providing clear answers to my questions."
"I received timely help whenever I got stuck on a concept or coding issue."
"The Q&A support is a significant difference from other online courses, making it feel more like having a tutor."
"Knowing that I could get support for my questions was very reassuring throughout the course."
Excellent preparation for technical interviews.
"The interview preparation section alone is worth the price of the course. The questions and answers are spot on."
"Using the mobile app alongside the course content really boosted my confidence for coding interviews."
"I landed a job thanks in part to the interview tips and practice provided here."
"This course focuses on practical, interview-relevant knowledge."
Concepts explained simply and clearly.
"The instructor explains complex topics like generics and streams in a very clear and easy-to-understand manner."
"I appreciated how the lectures were concise and to the point, high concentration of useful material."
"The way the instructor breaks down functional programming concepts made them much less intimidating."
"The explanations for the different collection implementations were very clear, highlighting their differences and use cases."
Hands-on practice is a key strength.
"The coding examples provided are very practical and help illustrate the concepts effectively."
"I found the homework assignments really useful for practicing what was taught in the lectures."
"Seeing real-life examples of how to use collections and streams was incredibly helpful."
"The hands-on coding activities are definitely a strong point of this course for learning by doing."
Thoroughly covers core Java topics.
"This course provided a really deep dive into JCF, Generics, and especially the Stream API. I feel like I finally understand these topics."
"The content goes into great detail on collections and functional programming, much more than other courses I've tried."
"I appreciate the comprehensive coverage of all the key interfaces and implementations in the collections framework."
"The course covers the full scope of the modern Java features like Lambdas and Streams very well."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Java Collections Framework + Generics, Lambdas & Stream API with these activities:
Review Core Java Concepts
Strengthen your understanding of fundamental Java concepts like object-oriented programming, data types, and control flow to better grasp the Collections Framework.
Show steps
  • Review Java tutorials and documentation.
  • Practice coding basic Java programs.
  • Complete online Java quizzes.
Review 'Effective Java' by Joshua Bloch
Deepen your understanding of Java best practices and design patterns, especially as they relate to collections and generics.
Show steps
  • Read selected chapters focusing on collections and generics.
  • Implement examples from the book.
  • Reflect on how the principles apply to your own code.
Review 'Java 8 in Action' by Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft
Gain a deeper understanding of lambdas and the Stream API, and how they can be used to work with collections more efficiently.
View Alter Ego: A Novel on Amazon
Show steps
  • Read selected chapters focusing on lambdas and the Stream API.
  • Experiment with the examples in the book.
  • Apply the concepts to your own code.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Blog Post: Choosing the Right Collection
Solidify your understanding of the different collection types by explaining their characteristics and use cases in a blog post.
Show steps
  • Research the different collection types in Java.
  • Write a blog post explaining the characteristics of each type.
  • Provide examples of when to use each type.
  • Publish the blog post online.
Implement Custom Data Structures
Reinforce your understanding of the underlying principles of data structures by implementing your own versions of common collections.
Show steps
  • Implement a custom linked list.
  • Implement a custom hash map.
  • Implement a custom binary tree.
  • Write unit tests to verify correctness.
LeetCode Collection Problems
Sharpen your problem-solving skills by tackling LeetCode problems that involve the use of Java collections.
Show steps
  • Solve 5-10 LeetCode problems per week related to collections.
  • Analyze the time and space complexity of your solutions.
  • Compare your solutions with those of other users.
Build a Library Management System
Apply your knowledge of the Collections Framework to a real-world problem by building a system to manage books, authors, and patrons.
Show steps
  • Design the data model for books, authors, and patrons.
  • Choose appropriate collection types to store the data.
  • Implement methods to add, remove, and search for books.
  • Implement features for borrowing and returning books.

Career center

Learners who complete Java Collections Framework + Generics, Lambdas & Stream API will develop knowledge and skills that may be useful to these careers:
Java Developer
A Java developer specializes in creating applications using the Java programming language. This comprehensive course on Java Collections Framework, Generics, Lambdas, and Stream API is perfectly tailored for Java developers. The course's hands-on coding examples and open-source code allow developers to immediately apply what they learn. Java developers need a strong understanding of how to use collections to manage data, and this course provides that. The Q&A support and relevant knowledge shared by an IT consultant make this an ideal choice to improve the craft of any Java developer. Furthermore, the course content is up-to-date to reflect modern development practices.
Software Engineer
A software engineer designs, develops, and tests software applications. This course on Java Collections Framework, Generics, Lambdas, and Stream API provides a strong foundation for any software engineer working with Java. The course emphasizes coding examples and open-source code, which directly translates to practical skills needed for software development. Mastering collections helps a software engineer manage and manipulate data efficiently. The course's focus on relevant knowledge, taught by an IT consultant, ensures that the software engineer stays current with industry best practices, as well as the modern approaches to application development.
Application Developer
An application developer is responsible for creating and maintaining software applications for computers and other devices. This Java course, concentrating on collections framework, generics, and Stream API, directly supports the skills needed in application development. The practical coding examples and open-source code are invaluable resources. Application developers will appreciate the course's relevance, taught by an experienced IT consultant. The Q&A support ensures that developers can quickly resolve issues and deepen their understanding of Java concepts. The course helps application developers write more efficient and maintainable code, enhancing their productivity and the quality of their applications.
Backend Developer
A backend developer focuses on the server-side logic, databases, and APIs that power applications. This course on Java Collections Framework, Generics, Lambdas, and Stream API is highly relevant for backend developers. This course helps backend developers optimize data processing and storage, essential for efficient server-side operations. The coding examples and open-source code offer practical insights into real-world backend challenges. The relevance of the course's content, taught by an IT consultant, ensures that the backend developer learns industry-standard techniques. Learning about functional programming will also allow backend developers to write more concise and efficient code.
Test Automation Engineer
A test automation engineer designs and implements automated tests to ensure software quality. This course on Java Collections Framework, Generics, Lambdas, and Stream API provides a solid foundation for writing robust and efficient automated tests for Java applications. The course helps test automation engineers understand how Java collections and stream APIs work, allowing them to create more effective test cases. The practical coding examples and open-source code offer valuable resources for implementing test automation frameworks. A test automation engineer can use this course to improve the quality and reliability of Java software through comprehensive automated testing.
Full-Stack Developer
A full stack developer works on both the frontend and backend of web applications. This course on Java Collections Framework, Generics, Lambdas, and Stream API equips a full stack developer with essential backend skills. The course's coding examples and open-source code provide practical experience with data management. Full stack developers will benefit from understanding efficient data handling on the server side. Furthermore, the instructor's experience as a consultant ensures that the full stack developer is learning current and relevant technologies. The Q&A support also ensures all questions are answered throughout the learning journey.
Software Architect
A software architect designs the overall structure and components of software systems. This Java course on Collections Framework, Generics, Lambdas, and Stream API is beneficial for software architects who need a deep understanding of Java's core capabilities. Software architects make decisions about data structures and algorithms, and this course provides the detailed knowledge needed. The course helps software architects design high-performance and scalable systems. The instructor's extensive experience as a consultant provides valuable insights into real-world architectural patterns and best practices. This course will also help software architects design efficient and maintainable software systems.
Mobile Application Developer
A mobile application developer creates applications for mobile devices such as smartphones and tablets. This Java course focusing on Collections Framework, Generics, Lambdas, and Stream API can be beneficial for mobile application developers, particularly those working on Android. Understanding Java's data structures and APIs can lead to more efficient and performant mobile apps. The course may help mobile application developers optimize data handling and improve the user experience. Stream API knowledge can assist in processing data efficiently on mobile devices. The coding examples are directly applicable to common mobile development tasks.
Data Engineer
A data engineer is responsible for building and maintaining the infrastructure for data storage and processing. This course on Java Collections Framework, Generics, Lambdas, and Stream API may be useful to data engineers who work with Java-based systems. The course helps data engineers optimize data structures and algorithms for efficient data manipulation. The practical coding examples and open-source code from the course provide hands-on experience that can be applied to data engineering challenges. Stream API knowledge can also help build real-time data pipelines for high-throughput data processing. A data engineer can use this course to improve their Java skills for data-intensive applications.
Technical Lead
A technical lead guides a team of developers and oversees the technical aspects of software projects. This Java course on Collections Framework, Generics, Lambdas, and Stream API can be valuable for technical leads who need to mentor their team in Java best practices. The course can help technical leads ensure their team is using Java's collections and stream APIs efficiently. The practical coding examples and open-source code provide a solid foundation for leading technical discussions and code reviews. Technical leads may also appreciate the instructor's real-world experience as a consultant when guiding the team towards best practices. This course will help technical leads improve team productivity and code maintainability.
Database Developer
A database developer designs, implements, and maintains databases. This course on Java Collections Framework, Generics, Lambdas, and Stream API may be useful for database developers working with Java-based applications. This course helps database developers optimize data access and manipulation in Java applications. The course's detailed coverage of collections provides insights into efficient data storage and retrieval strategies. The practical coding examples and open-source code can be adapted to database interactions. A database developer can leverage this course to improve the performance and scalability of database-driven Java applications.
Quality Assurance Engineer
A quality assurance engineer tests software to ensure it meets quality standards and works as expected. This course on Java Collections Framework, Generics, Lambdas, and Stream API may be helpful for quality assurance engineers who need to write automated tests for Java applications. This course helps quality assurance engineers understand the underlying data structures and algorithms used in Java applications, allowing for more effective test case design. The course's coding examples and open source code serve as reference material. A quality assurance engineer can use this course to ensure comprehensive test coverage and identify potential performance bottlenecks.
Cloud Engineer
A cloud engineer builds and manages cloud infrastructure and services. This course on Java Collections Framework, Generics, Lambdas, and Stream API can be helpful for cloud engineers who work with Java-based cloud applications and services. The course helps cloud engineers optimize Java applications for performance and scalability in cloud environments. Efficient data handling and stream processing are essential for building robust cloud services. A cloud engineer can leverage this course to improve their Java skills for developing and managing cloud-native applications.
Data Scientist
A data scientist analyzes data to extract meaningful insights and build predictive models, often requiring advanced degrees. While this Java Collections Framework, Generics, Lambdas, and Stream API course isn't directly focused on data science, it can be helpful for data scientists who use Java for data processing tasks. The course may help data scientists efficiently manipulate and analyze data using Java's collection and stream APIs. This knowledge can be valuable for building data pipelines and custom data processing tools. The course can serve as a complementary skill for data scientists who already have a strong foundation in statistical analysis and machine learning.
DevOps Engineer
A DevOps engineer automates and streamlines software development and deployment processes. This course on Java Collections Framework, Generics, Lambdas, and Stream API may be useful for DevOps engineers who work with Java-based systems. The course enhances skills in managing Java applications and optimizing performance. While DevOps often involves system-level tasks, understanding Java's internal data handling can aid in troubleshooting and fine-tuning applications. A DevOps engineer can use this course to more effectively monitor and manage Java applications in production environments.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Java Collections Framework + Generics, Lambdas & Stream API.
Must-read for any Java developer, covering a wide range of best practices and design patterns. It provides invaluable insights into writing robust and maintainable Java code, directly applicable to the concepts covered in the course, such as collections, generics, and functional programming. It serves as an excellent guide for understanding the nuances of the Java language and improving coding skills.
Provides a comprehensive guide to Java 8 features, including lambdas and the Stream API. It is particularly useful for understanding how to use these features effectively with collections. The book includes numerous examples and exercises to help you master the concepts. It is valuable as additional reading to the course.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser