Basic Data Structures and Algorithms in Java 9
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1 student enrolled
Wishlisted Wishlist

Please confirm that you want to add Basic Data Structures and Algorithms in Java 9 to your Wishlist.

Add to Wishlist

Basic Data Structures and Algorithms in Java 9

Take the first step towards advanced data structures and algorithms in Java 9!
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1 student enrolled
Created by Packt Publishing
Last updated 8/2017
Current price: $10 Original price: $125 Discount: 92% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 3 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand the fundamentals of algorithms, data structures, and complexity measurement
  • Find out what general-purpose data structures are, including arrays, linked lists, double ended linked lists, and circular lists
  • Master the basics of abstract data types—stacks, queues, and double ended queues
  • See how to use recursive functions and immutability while understanding them in terms of recursion
  • Use binary search, sorting, and efficient sorting—quick sort and merge sort
View Curriculum
  • A basic knowledge of Java is assumed.

Java 9 Data Structures and Algorithms covers classical, functional, and reactive data structures, giving you the ability to understand computational complexity, solve problems, and write efficient code. This video is based on the Zero Bug Bounce milestone of Java 9.We start off with the basics of algorithms and data structures, helping you understand the fundamentals and measure complexity. From here, we introduce you to concepts such as arrays, linked lists, and abstract data types such as stacks and queues. Next, we'll take you through the basics of functional programming while making sure you get used to thinking recursively. We provide plenty of examples along the way to help you understand each concept. You will also get a clear picture of reactive programming, binary searches, sorting, search trees, undirected graphs, and a whole lot more!

About the Author

Debasish Ray Chawdhuri is an established Java developer and has been in the industry for the last eight years. He has developed several systems, from CRUD applications to programming languages and big data processing systems. He had provided the first implementation of an extensible business reporting language specification, and a product around it, to verify company financial data for the Government of India while he was employed at Tata Consultancy Services Ltd. In Talentica Software Pvt. Ltd., he implemented a domain-specific programming language to easily implement complex data aggregation computations that compiled to Java bytecode. Currently, he is leading a team developing a new high-performance structured data storage framework to be processed by Spark. The framework is named Hungry Hippos and will be open sourced very soon.
He has worked for Tata Consultancy Services Ltd., Oracle India Pvt. Ltd., and Talentica Software Pvt. Ltd.

Who is the target audience?
  • This video is for Java developers who want to learn about data structures and algorithms.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
19 Lectures
Why Bother? - Basic
4 Lectures 24:38

This video gives overview of the entire course.

Preview 03:16

The speed of execution of an algorithm is a very important factor to be considered while designing. Hence, the performance of an algorithm needs to be studied.

The Performance of an Algorithm

Asymptotic bound defines the complexity of an algorithm. It is important to analyze asymptotic bounds before implementing the algorithm.

Analysis of Asymptotic Complexity

In order to optimize our algorithm, we need to start fixing the problem with large inputs. This video will focus on optimizing the algorithm.

Optimizing Our Algorithm
Cogs and Pulleys - Building Blocks
4 Lectures 30:07
Arrays are an important part of Java for storing data. They store items sequentially and are easily accessible.
Preview 06:46

Arrays are fixed in size, which is a limitation and requires operations to resize it. Hence, linked lists are used.
Linked List

Doubly linked list is one step better than a linked list. It prevents the time required for removing the last element. Let’s learn about it in this video.

Doubly Linked List

A circular linked list is an ordinary linked list, except that the last element holds the reference to the first element as its next element. This helps when there is a round robin fashion implemented.

Circular Linked List
Protocols - Abstract Data Types
3 Lectures 21:56
Stack is an important ADT. It follows the LIFO approach. We will learn all about stacks and their working in this video.
Preview 08:26

The queue is opposite of a stack; it follows the FIFO approach. Let’s learn about it in this video


Double-ended queue combines a stack and queue and hence has the advantages of both. In this video, we will work with Double-ended queue.

Double-Ended Queue
Detour - Functional Programming
5 Lectures 55:39

Recursive algorithms reduce the time involved in programming and implementation of a particular code. In this video, we will look at a few examples of recursive algorithms.

Preview 04:00

Lambda expressions let us pass a block of code as an argument to another function.

Lambda Expressions in Java

Functional data structures are data structures that follow the principle of immutability and inductive (or recursive) definition. We are going to learn about functional linked lists here

Functional Data Structures

A monad is a common design pattern that is followed in functional programming. It stores object of another class


In this video, we will analyze the complexity of our recursive algorithm and gauge the performance of our functional programming
Analysis and Performance
Efficient Searching - Binary Search and Sorting
3 Lectures 34:50

Search algorithms are used to search an element in an array and list.

Preview 10:37

Sorting eases the process of searching for a particular element. In this video, we will see how to sort an array


In this video, we will look at problems caused due to recursive calls.

A Problem with Recursive Calls
About the Instructor
Packt Publishing
3.9 Average rating
7,241 Reviews
51,769 Students
616 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.