Welcome to JavaHandsOn! This repository captures my journey of learning and practicing data structures, design patterns, and algorithms using Java. I've covered a variety of topics, including specific data structures, design patterns, and essential algorithms.
- HashMap: Understanding key-value mappings and efficient data retrieval.
- HashSet: Exploring the implementation of sets for unique elements.
- Linked List: Grasping the concepts of linked data structures.
- Queue: Learning about first-in-first-out data structures.
- Stack: Exploring last-in-first-out data structures.
- Facade Pattern: Simplifying complex systems by providing a unified interface.
- Singleton Pattern: Ensuring a class has only one instance and providing a global point of access to it.
- Binary Search: Efficiently searching for an element in a sorted collection.
- Recursion: Solving problems by breaking them into smaller, similar subproblems.
- Sliding Window: Optimizing array or list processing using a 'window' of elements.
- Two Pointer: Using two pointers to traverse a data structure or search for a solution.
- Greedy Algorithm: Making locally optimal choices at each stage to achieve a global optimum.
- Frequency Count: Analyzing the frequency of elements in a dataset.
- Backtracking: Systematically searching for a solution to a problem.
- src/ : Contains Java source code for implementing and demonstrating covered topics.
- problems/ : Solutions to LeetCode questions with explanations.
-
Clone the Repository:
git clone https://github.com/your-username/JavaHandsOn.git cd JavaHandsOn
-
Explore the Code:
Navigate through the src/ directory to find implementations of data structures, design patterns, and algorithms.
Contributions, suggestions, and improvements are always welcome. Open an issue or submit a pull request if you have something to share.