Java Algorithms
gocourse.in Maintenance

We'll be back soon

Our CDN (cdn.gocourse.in) is currently unreachable. Some images, JavaScript, or CSS files may not load properly.

Estimated downtime: ~30 minutes

Java Algorithms

Harine

Java Algorithms

Introduction to Java Algorithms

In Java, algorithms are step-by-step procedures used to perform operations such as searching, sorting, and manipulating data. These algorithms work closely with data structures like ArrayList, HashMap, and HashSet to build efficient and scalable applications.

The good news is that Java provides a rich set of built-in algorithms through the Collections class (available in the java.util package). This allows developers to perform complex operations without implementing algorithms from scratch.

Searching in Java Collections

Searching is a fundamental operation used to locate elements within a collection. Java offers the Collections.binarySearch() method, which performs a fast search on sorted lists.

Key Requirement:

Before using binary search, the collection must be sorted.

Example: Binary Search in a Sorted List

import java.util.ArrayList;

import java.util.Collections;

public class BinarySearchDemo {

  public static void main(String[] args) {

    ArrayList<Integer> scores = new ArrayList<>();

    scores.add(45);

    scores.add(12);

    scores.add(78);

    scores.add(34);

    scores.add(23);

    // Sort the list before searching

    Collections.sort(scores);

    int position = Collections.binarySearch(scores, 34);

    if (position >= 0) {

       System.out.println("Element found at index: " + position);

    } else {

       System.out.println("Element not found");

      }

    }

  }

Sorting Algorithms in Java

Sorting is one of the most commonly used operations in programming. Java simplifies sorting with the Collections.sort() method.

Example: Sorting Strings Alphabetically

import java.util.ArrayList;

import java.util.Collections;

public class SortStringsExample {

   public static void main(String[] args) {

      ArrayList<String> students = new ArrayList<>();

      students.add("Ravi");

      students.add("Anita");

      students.add("Zoya");

      students.add("Kiran");

      Collections.sort(students);

      System.out.println("Sorted list: " + students);

     }

   }

Sorting in Descending Order

You can sort elements in reverse order using Collections.reverseOrder().

import java.util.ArrayList;

import java.util.Collections;

public class DescendingSortExample {

   public static void main(String[] args) {

      ArrayList<Double> prices = new ArrayList<>();

      prices.add(99.5);

      prices.add(49.9);

      prices.add(150.0);

      prices.add(75.25);

      Collections.sort(prices, Collections.reverseOrder());

      System.out.println("Descending order: " + prices);

    }

  }

Iterating Through Collections

Iteration is the process of traversing elements in a collection. Java provides multiple ways to iterate.

Example: Using Enhanced For Loop

import java.util.ArrayList;

public class ForEachIteration {

   public static void main(String[] args) {

      ArrayList<String> technologies = new ArrayList<>();

      technologies.add("Java");

      technologies.add("Python");

      technologies.add("React");

      for (String tech : technologies) {

          System.out.println(tech);

        }

      }

    }

Example: Using Iterator

import java.util.ArrayList;

import java.util.Iterator;

public class IteratorTraversal {

   public static void main(String[] args) {

      ArrayList<Integer> ids = new ArrayList<>();

      ids.add(101);

      ids.add(102);

      ids.add(103);

      Iterator<Integer> iterator = ids.iterator();

      while (iterator.hasNext()) {

          System.out.println(iterator.next());

        }

     }

   }

Other Useful Algorithms in the Collections Class

The Collections class includes several utility methods that simplify data manipulation.

1. Finding Maximum and Minimum

import java.util.ArrayList;

import java.util.Collections;

public class MinMaxExample {

   public static void main(String[] args) {

      ArrayList<Integer> temperatures = new ArrayList<>();

      temperatures.add(32);

      temperatures.add(25);

      temperatures.add(40);

      temperatures.add(28);

      System.out.println("Highest: " + Collections.max(temperatures));

      System.out.println("Lowest: " + Collections.min(temperatures));

    }

  }

2. Shuffling Elements Randomly

import java.util.ArrayList;

import java.util.Collections;

public class ShuffleExample {

   public static void main(String[] args) {

      ArrayList<String> tasks = new ArrayList<>();

      tasks.add("Design");

      tasks.add("Development");

      tasks.add("Testing");

      tasks.add("Deployment");

      Collections.shuffle(tasks);

      System.out.println("Shuffled tasks: " + tasks);

     }

   }

3. Counting Element Frequency

import java.util.ArrayList;

import java.util.Collections;

public class FrequencyExample {

   public static void main(String[] args) {

      ArrayList<String> items = new ArrayList<>();

      items.add("Pen");

      items.add("Notebook");

      items.add("Pen");

      items.add("Pencil");

      items.add("Pen");

      int occurrences = Collections.frequency(items, "Pen");

      System.out.println("Pen appears " + occurrences + " times");

     }

  }

4. Swapping Elements

import java.util.ArrayList;

import java.util.Collections;

public class SwapExample {

   public static void main(String[] args) {

      ArrayList<String> names = new ArrayList<>();

      names.add("Amit");

      names.add("Sara");

      names.add("John");

      names.add("Meena");

      // Swap second and fourth elements

      Collections.swap(names, 1, 3);

      System.out.println("After swapping: " + names);

    }

  }

Key Advantages of Java Algorithms

  • Built-in Efficiency: Optimized implementations reduce development time
  • Code Simplicity: No need to write complex logic manually
  • Improved Performance: Uses well-tested and efficient algorithms
  • Seamless Integration: Works smoothly with Java Collection Framework

Our website uses cookies to enhance your experience. Learn More
Accept !