In Java, a common task is organizing data in a collection based on a custom criterion. Suppose we have a collection of objects with an id field and want to sort them by that field.
To achieve this, we can use a Comparator, which allows us to specify our own logic for ordering. Here's how:
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; class CustomObject implements Comparable{ private int id; public int getId() { return id; } @Override public int compareTo(CustomObject other) { return this.id - other.id; } } public class CustomCollectionSorting { public static void main(String[] args) { // Initialize the list of CustomObject List list = new ArrayList(); list.add(new CustomObject(3)); list.add(new CustomObject(5)); list.add(new CustomObject(1)); list.add(new CustomObject(2)); // Create a comparator Comparator comparator = new Comparator () { @Override public int compare(CustomObject left, CustomObject right) { return left.getId() - right.getId(); } }; // Sort the collection Collections.sort(list, comparator); // Display the sorted list System.out.println(list); } }
Using a Comparator gives you maximum flexibility in defining your sorting logic. Alternatively, if CustomObject implements Comparable, you can use the simpler Collections.sort(list) method.
With Java 8, sorting collections is even easier:
list.sort((left, right) -> left.getId() - right.getId()); list.sort(Comparator.comparing(CustomObject::getId));
These examples demonstrate how to sort a Java collection based on a specific field, making it easier to organize and manipulate data according to specific requirements.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3