HOME HTML EDITOR C JAVA PHP

Java Advanced Sorting

Sorting ka matlab hota hai data ko kisi specific order me arrange karna — jaise ascending (small to large) ya descending (large to small). Java me basic sorting ke liye Arrays.sort() aur Collections.sort() use kiya jata hai. Lekin jab hume custom logic ke according sorting karni hoti hai, tab Comparator, Comparable aur Stream API ka use hota hai.

1. Sorting Using Arrays.sort()

Primitive data types (int, double, char) ko sort karne ke liye Arrays.sort() method use hota hai.

import java.util.Arrays;

int[] numbers = {5, 2, 8, 1, 9};
Arrays.sort(numbers);

for(int n : numbers){
  System.out.print(n + " ");
}

2. Sorting Using Collections.sort()

List ko sort karne ke liye Collections.sort() method use hota hai.

import java.util.*;

List<String> names = new ArrayList<>();
names.add("Ravi");
names.add("Aman");
names.add("Sita");

Collections.sort(names);
System.out.println(names);

3. Comparable Interface

Jab hume apne custom class ke objects ko sort karna hota hai, tab hum Comparable interface implement karte hain. Isme compareTo() method override karna padta hai.

class Student implements Comparable<Student> {
  int marks;
  String name;

  Student(String name, int marks){
    this.name = name;
    this.marks = marks;
  }

  public int compareTo(Student s){
    return this.marks - s.marks;
  }
}

Upar wale example me students ko unke marks ke basis par ascending order me sort kiya jayega.

4. Comparator Interface

Agar hume multiple ways me sorting karni ho (jaise name ke according ya marks ke according), tab hum Comparator interface ka use karte hain.

import java.util.*;

class SortByName implements Comparator<Student> {
  public int compare(Student s1, Student s2){
    return s1.name.compareTo(s2.name);
  }
}

5. Sorting Using Lambda (Modern Way)

Java 8 ke baad Comparator ko lambda expression ke saath use kar sakte hain. Ye short aur readable hota hai.

List<Student> list = new ArrayList<>();

list.sort((s1, s2) -> s1.marks - s2.marks);

6. Sorting in Descending Order

Descending order me sort karne ke liye hum reverse order use kar sakte hain.

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

7. Stream API Sorting

Stream API modern Java ka powerful feature hai jo functional style me sorting allow karta hai.

list.stream()
  .sorted((s1, s2) -> s1.name.compareTo(s2.name))
  .forEach(System.out::println);

8. Important Points

Helpful Tip: Agar aap BCA ya interview preparation kar rahe ho, to Comparable aur Comparator ke difference ko clearly samajhna bahut zaroori hai. Advanced sorting Java programming ka important topic hai.