Java Design Patterns: Practical Code Examples

Singleton Pattern

class Singleton {
    private static Singleton instance;
    private Singleton() {}

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

public class Main {
    public static void main(String[] args) {
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();
        System.out.println(s1 == s2);
    }
}

Factory Pattern

interface Animal 
Read More

Essential Array Operations and Binary Tree Traversal

Array Traversal

Traversal means accessing or visiting each element of an array one by one. It is used to display, process, or perform operations on all elements of the array. Traversal is a fundamental operation in data structures.

Algorithm for Array Traversal

  1. Start
  2. Enter the size of array N
  3. Enter the array elements
  4. Set I = 0
  5. Repeat while I < N:
    • Print ARR[I]
    • Set I = I + 1
  6. Stop

Example: Suppose the array is A = [10, 20, 30, 40]. After traversal, the output will be: 10 20 30 40.

Pros and Cons

  • Advantages: Useful
Read More

C# Object-Oriented Programming: CSV Parsing and Inheritance

CSV Data Processing in C#

public class Program
{
    public static void Main(string[] args)
    {
        List<Employee> employees = new List<Employee>();
        string filePath = "employees.csv";

        try
        {
            using(StreamReader reader = new StreamReader(filePath))
            {
                reader.ReadLine(); // Skip header
                string line;
                while((line = reader.ReadLine()) != null)
                {
                    string[] data 
Read More

Algorithmic Solutions: String Manipulation and Parsing

String Duplicate Removal

def removeDuplicates(self, s: str, k: int) -> str:
    stack = []
    for char in s:
        if not stack:
            stack.append((char, 1))
        else:
            last_char, last_cnt = stack[-1]
            if char != last_char:
                stack.append((char, 1))
            else:
                if last_cnt + 1 < k:
                    stack[-1] = (last_char, last_cnt + 1)
                else:
                    stack.pop()
    return ''.join(c * cnt for 
Read More

String Operations and Queue Data Structures Explained

String Storage and Memory Representation

A string is a collection of characters stored together in memory. Strings are used to store names, words, sentences, and other text data in computer systems. In programming languages like C, a string is stored as an array of characters and ends with a special null character '\0'.

Example of String: char name[] = "ROHIT";

In memory, the string is stored as:

| R | O | H | I | T | \0 |

Here, \0 represents the end of the string.

Methods of String Storage

1. Fixed Length

Read More

Data Structures and Algorithms: Core Concepts

Unit I: Fundamentals

1. Elementary Data Organization

Elementary data organization refers to the basic method of arranging and managing data in a computer system. Data is organized in the form of characters, fields, records, files, and databases. A character is the smallest unit of data, while a field is a group of related characters. Multiple fields form a record, and records together create a file. Proper data organization helps in storing, accessing, and processing information efficiently. It improves

Read More