Java DSA Study Plan
Week 1: Java Foundations for DSA
Topics:
- Data types, variables, operators
- Loops and conditionals
- Methods and recursion
- Arrays (1D, 2D)
Practice:
- Reverse an array
- Find the max/min element
- Binary search (iterative + recursive)
Resources:
- GeeksforGeeks Java Basics
- LeetCode Easy problems (Arrays)
Week 2: OOP + ArrayList/String
Topics:
- Classes, objects, constructors
- Inheritance, Polymorphism
- String and StringBuilder
- ArrayList basics
Practice:
- Reverse a string
- Check palindrome
- Custom class with methods
Projects:
- Contact Manager using ArrayList
Week 3: Sorting + Time Complexity
Topics:
- Bubble, Selection, Insertion sort
- Merge Sort, Quick Sort
- Big O Analysis
Practice:
- Sort a list of custom objects
- Compare sort speeds with timers
Focus:
- Understand recursion and divide & conquer
Week 4: Stacks and Queues
Topics:
- Stack using array and LinkedList
- Queue and Deque
- Inbuilt Java Stack, Queue
Practice:
- Valid parentheses
- Next greater element
- Implement queue using 2 stacks
Week 5: Linked Lists + Hashing
Topics:
- Singly and Doubly Linked List
- Detect cycle
- HashMap and HashSet
Practice:
- Remove duplicates
- Find first non-repeating character
- Intersection of two arrays
Week 6: Trees + Graphs (Basics)
Topics:
- Binary Tree, BST
- DFS and BFS (recursive & iterative)
- Graph intro with adjacency list/matrix
Practice:
- Level order traversal
- Validate BST
- Shortest path in unweighted graph