En Java, une tâche courante consiste à organiser les données dans une collection en fonction d'un critère personnalisé. Supposons que nous ayons une collection d'objets avec un champ id et que nous souhaitions les trier en fonction de ce champ.
Pour y parvenir, nous pouvons utiliser un comparateur, qui nous permet de spécifier notre propre logique de classement. Voici comment :
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; class CustomObject implements Comparable<CustomObject> { 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<CustomObject> 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<CustomObject> comparator = new Comparator<CustomObject>() { @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); } }
L'utilisation d'un comparateur vous offre un maximum de flexibilité dans la définition de votre logique de tri. Alternativement, si CustomObject implémente Comparable, vous pouvez utiliser la méthode Collections.sort(list) plus simple.
Avec Java 8, le tri des collections est encore plus simple :
list.sort((left, right) -> left.getId() - right.getId()); list.sort(Comparator.comparing(CustomObject::getId));
Ces exemples montrent comment trier une collection Java en fonction d'un champ spécifique, ce qui facilite l'organisation et la manipulation des données en fonction d'exigences spécifiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!