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 d'identification 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 procéder :
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); } }
L'utilisation d'un comparateur vous offre une flexibilité maximale 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, facilitant ainsi l'organisation et la manipulation des données en fonction d'exigences spécifiques.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3