Tri de la liste des objets en fonction de la propriété
Vous disposez d'une classe Java personnalisée ActiveAlarm qui contient des propriétés liées aux alarmes, notamment timeStarted et timeEnded. Vous devez trier une liste
Solution : Utiliser Comparator
En Java, vous pouvez trier les objets à l'aide d'un Comparator. Un comparateur est une interface qui représente une fonction permettant de comparer deux objets. Vous pouvez créer un comparateur personnalisé pour comparer les objets ActiveAlarm en fonction des critères spécifiés.
Voici un exemple d'implémentation utilisant un comparateur :
import java.util.Collections; import java.util.Comparator; class ActiveAlarm { public long timeStarted; public long timeEnded; // Other properties and accessor methods... } public class SortingAlarms { public static void main(String[] args) { List<ActiveAlarm> alarms = new ArrayList<>(); // Add alarms to the list // Create a comparator to sort by timeStarted and then timeEnded Comparator<ActiveAlarm> comparator = new Comparator<ActiveAlarm>() { @Override public int compare(ActiveAlarm o1, ActiveAlarm o2) { int result = Long.compare(o1.timeStarted, o2.timeStarted); if (result == 0) { result = Long.compare(o1.timeEnded, o2.timeEnded); } return result; } }; Collections.sort(alarms, comparator); // Print the sorted list for (ActiveAlarm alarm : alarms) { System.out.println(alarm.timeStarted + " - " + alarm.timeEnded); } } }
Ce comparateur compare d'abord les valeurs timeStarted des alarmes, et si celles-ci sont égales, il compare les valeurs timeEnded. Le résultat de la comparaison (1, 0 ou -1) est utilisé pour déterminer l'ordre de tri.
Remarque : Pour Java 8 et versions ultérieures, vous pouvez utiliser des expressions lambda pour simplifier le mise en place du comparateur :
Collections.sort(alarms, (a1, a2) -> Long.compare(a1.timeStarted, a2.timeStarted) != 0 ? Long.compare(a1.timeStarted, a2.timeStarted) : Long.compare(a1.timeEnded, a2.timeEnded));
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!