Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

☕ Java OOP & Data Structures and Algorithms

Java DSA OOP

A comprehensive collection of Java programs covering Object-Oriented Programming concepts and Data Structures & Algorithms, organized by topic for easy navigation and learning.


📁 Project Structure

JavaProjects/
│
├── 📂 ArrayList
├── 📂 ArrayProblems
├── 📂 BitwiseOperatorsInJava
├── 📂 CharacterMethodsInJava
├── 📂 DataStructureAndAlgorithm
├── 📂 FactorialCalculator
├── 📂 FibonacciCalculator
├── 📂 FileHandling
├── 📂 FindingRootsOfEquation
├── 📂 FindingSystemTime
├── 📂 Function
├── 📂 GeneratingRandomNumbers
├── 📂 GPACalculator
├── 📂 GradeBookClass
├── 📂 JavaDateTimeAPI
├── 📂 LeetCodeProblems
├── 📂 MaximumAndMinimumFinder
├── 📂 MiscellaneousProblem
├── 📂 MultiThreadingInJava
├── 📂 RecursionProblems
├── 📂 RegularExpressionInJava
├── 📂 SearchingAlgorithm
├── 📂 SortingAlgorithm
├── 📂 StringsInJava
└── 📂 TCP&SMTPClientAndServer

📚 Topics Covered

🔷 Object-Oriented Programming (OOP)

Folder Description
GradeBookClass Class design, constructors, methods, and encapsulation
GPACalculator OOP-based GPA computation using classes and objects
Function Method overloading, return types, and parameters
GeneratingRandomNumbers Utility class usage and Java standard library
FileHandling File I/O using FileReader, FileWriter, BufferedReader
MultiThreadingInJava Threads, Runnable, synchronized, and concurrency
RegularExpressionInJava Pattern matching using java.util.regex
JavaDateTimeAPI LocalDate, LocalTime, DateTimeFormatter
TCP&SMTPClientAndServer Socket programming, networking with Java
CharacterMethodsInJava Character class utility methods
StringsInJava String manipulation, StringBuilder, common methods
BitwiseOperatorsInJava Bitwise AND, OR, XOR, shift operators

🔶 Data Structures & Algorithms (DSA)

Folder Description
DataStructureAndAlgorithm Core DSA concepts and implementations
ArrayList Dynamic arrays using java.util.ArrayList
ArrayProblems Array-based problem solving
SortingAlgorithm Bubble, Selection, Insertion, Merge, Quick Sort
SearchingAlgorithm Linear Search, Binary Search
RecursionProblems Recursive thinking and problem solving
LeetCodeProblems Competitive programming practice problems
MaximumAndMinimumFinder Array traversal and comparison logic
FactorialCalculator Iterative and recursive factorial
FibonacciCalculator Fibonacci with loops and recursion
FindingRootsOfEquation Numerical methods (Bisection, Newton-Raphson)
FindingSystemTime Benchmarking algorithms using system time
MiscellaneousProblem Mixed logic and problem-solving exercises

🚀 Getting Started

Prerequisites

  • Java JDK 17 or above
  • Any IDE: IntelliJ IDEA, Eclipse, or VS Code with Java Extension

How to Run

Using Terminal / CMD:

# Navigate to any folder
cd SortingAlgorithm

# Compile the Java file
javac Main.java

# Run the program
java Main

Using IntelliJ IDEA:

  1. Open the project folder
  2. Right-click any .java file
  3. Click Run

🧠 Key Concepts Practiced

OOP Pillars

  • ✅ Encapsulation — Private fields with getters/setters
  • ✅ Inheritance — Parent-child class relationships
  • ✅ Polymorphism — Method overloading & overriding
  • ✅ Abstraction — Abstract classes and interfaces

DSA Concepts

  • ✅ Arrays & ArrayLists
  • ✅ Recursion & Backtracking
  • ✅ Sorting — Bubble, Merge, Quick, Selection, Insertion
  • ✅ Searching — Linear, Binary
  • ✅ String Manipulation
  • ✅ Bit Manipulation
  • ✅ File I/O
  • ✅ Multithreading
  • ✅ Networking (TCP/SMTP)

📈 Learning Roadmap

Beginner        →     Intermediate      →      Advanced
─────────────────────────────────────────────────────────
Variables            OOP Concepts             Multithreading
Arrays               Recursion                Networking
Strings              Sorting & Searching      LeetCode Problems
Functions            File Handling            DSA Deep Dive

🤝 Contributing

Feel free to fork this repository, add new problems or improve existing solutions, and submit a pull request!


👤 Author

Muhammad Abdullah

  • Learning Java | OOP & DSA Enthusiast
  • 📅 Started: November 2025
  • 💼 LinkedIn
  • 🐙 GitHub

📄 License

This project is open-source and available for educational purposes.


"The only way to learn programming is to write programs." — Dennis Ritchie