Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Introduction to Collections, Generics & Reflection in Java
Highest Rated
Rating: 4.6 out of 5(3,632 ratings)
29,008 students

Introduction to Collections, Generics & Reflection in Java

A Guide to Understand Generics, Collections Framework (Data Structures), Stream API and Reflection in Java!
Created byHolczer Balazs
Last updated 9/2025
English

What you'll learn

  • Understand the basics of generics
  • Understand bounded type parameters
  • Understand wildcards (unbounded, upper bounded and lower bounded wildcards)
  • Understand type erasure and type inference
  • Understand the basic data structures
  • Understand hash maps and sets
  • Understand lists (ArrayLists and LinkedLists)
  • Understand stacks and queues
  • Understand the Collection Framework
  • Understand hashing and hash-functions
  • Understand Stream API

Coding Exercises

This course includes our updated coding exercises so you can practice your skills as you learn.

See a demo
Image of coding exercise example

Course content

20 sections116 lectures10h 52m total length
  • Introduction1:25

Requirements

  • Internet connection
  • Basic Java (loops, classes etc.)

Description

Learn the basic concepts and functions  that you will need to build fully functional programs with the popular programming language, Java.

This course is about generics in the main. You will lern the basics of generic types, generic methods, type parameters and the theoretical background concerning these topics. This is a fundamental part of Java so it is definitly worth learning.

Section 1 - Generic and Generic Programming

  • why to use generics and generic programming

Section 2 - Basic Generics

  • generic types

  • generic methods

  • fundamentals of generics and generic programming

Section 3 - Bounded Type Parameters

  • bounded type parameters

Section 4 - Type Inference

  • what is type inference

Section 5 - Wildcards

  • what are wildcards?

  • lower bounded wildcards

  • upper bounded wildcards

  • wildcards and bounded type parameters

Section 6 - Type Erasure

  • what is type erasure?

  • bridge methods and type erasure

Section 7 - Collections Framework

  • the collections framework

  • measuring the running time of algorithms

  • what are data structures?

Section 8 - Lists

  • ArrayList and LinkedList

  • performance comparison of LinkedLists and ArrayLists

  • Vectors

  • Stacks

Section 9 - Queues

  • what are queues?

  • PriorityQueues

  • ArrayDeques

Section 10 - Maps

  • hashing based data structures and hash-functions

  • HashMaps and LinkedHashMaps

  • balanced binary search trees and red-black trees

  • TreeMaps

Section 11 - Sets

  • what are sets?

  • HashSets, LinkedHashSets and TreeSets

Section 12 - Sorting Collections

  • sorting arrays and collections

  • Comparable and Comparator interfaces

  • sorting with lambda expressions

Section 13 - Stream API

  • streams

  • sequential streams and parallel streams

  • map() and flatMap()

  • reduce()

Section 13 - Reflection

  • what is reflection?

  • annotations and reflection

  • reflection and frameworks (such as Spring)

Learning the fundamentals of Java is a good choice and puts a powerful and tool at your fingertips. Java is easy to learn as well as it has excellent documentation, and is the base for all object-oriented programming languages.

Jobs in Java development are plentiful, and being able to learn Java will give you a strong background to pick up other object-oriented languages such as C++, or C# more easily.

Who this course is for:

  • Beginner Java developers curious about generics, collections and reflection