Introduce Java List Sorting and give examples
In Java, the List
interface is part of the Java Collections Framework and represents an ordered collection (also known as a sequence). The List
interface provides various methods to manipulate the elements in the list, including sorting. Sorting a list can be done using the Collections.sort()
method or the List.sort()
method, both of which allow you to sort the elements in natural order or using a custom comparator.
Using Collections.sort()
:
The Collections.sort()
method sorts the specified list into ascending order, according to the natural ordering of its elements.
Example:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ListSortingExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Banana");
fruits.add("Apple");
fruits.add("Orange");
fruits.add("Mango");
// Sorting the list in natural order
Collections.sort(fruits);
System.out.println("Sorted fruits: " + fruits);
}
}
Output:
Sorted fruits: [Apple, Banana, Mango, Orange]
Using List.sort()
:
The List.sort()
method is a default method in the List
interface that sorts the list using a specified comparator.
Example:
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class ListSortingWithComparator {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Banana");
fruits.add("Apple");
fruits.add("Orange");
fruits.add("Mango");
// Sorting the list in reverse order using a comparator
fruits.sort(Comparator.reverseOrder());
System.out.println("Sorted fruits in reverse order: " + fruits);
}
}
Output:
Sorted fruits in reverse order: [Orange, Mango, Banana, Apple]
Sorting a List of Custom Objects:
You can also sort a list of custom objects by implementing the Comparable
interface or by using a Comparator
.
Example:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return name + " (" + age + ")";
}
}
public class CustomObjectSorting {
public static void main(String[] args) {
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 30));
people.add(new Person("Bob", 25));
people.add(new Person("Charlie", 35));
// Sorting by age using a comparator
Collections.sort(people, Comparator.comparingInt(person -> person.age));
System.out.println("Sorted people by age: " + people);
}
}
Output:
Sorted people by age: [Bob (25), Alice (30), Charlie (35)]
Collections.sort()
or List.sort()
.Comparable
interface or by providing a Comparator
.These methods provide a flexible way to sort data in Java applications.