Ich hatte eine Liste von Objekten, die ich mit mehreren Kriterien innerhalb jeder der Ausgabe eines einzelnen Kriterien sortieren muss. Beispiel: Mitarbeiterklasse mit Feld mit EmploymentType, CategoryType, DepartmentType, Ruhestandsdatum, MitarbeiterID. so jetzt möchte ich die Liste von epmloyee auf der Grundlage von Beschäftigungstyp, in dem ich nach Kategorie sortieren müssen innerhalb Sortierung nach Abteilung innerhalb Ruhestandsdatum in emplotid.so wollen nur wissen, welche der Java-Design-Muster kann ich hier verwenden?Welches ist das beste Entwurfsmuster für mehrere Sortierung der Sammlung
Antwort
hier statt nach einem Design-Muster Sie denken müssen, wie Sie die Design-Prinzipien folgen:
In Ihrem Fall sollten Sie verschiedene Sortierfunktionen zu Ihrer Klasse hinzuzufügen. Aber wenn Sie es in derselben Klasse tun, wird es das Prinzip der einfachen Verantwortung verletzen.
Nehmen wir an, dass in Zukunft eine Anforderung kommt, um eine neue Sortierung hinzuzufügen. Sie werden wiederum Änderungen an der vorhandenen Klasse vornehmen, die das Open Closed Principle verletzt.
Wenn Sie also zu Ihrer ursprünglichen Frage zurückkehren, verwenden Sie am besten Comparator.
Sie können separate Klassen wie EmploymentTypeComparator, DepartmentTypeComparator und so weiter haben. Diese Klassen sind verantwortlich für die Sortierlogik.
Sie können den folgenden Code für die Implementierung Details siehe:
https://examples.javacodegeeks.com/core-java/util/comparator/java-comparator-example/
Außerdem kann man leicht verschachtelte Sortierung erreichen, indem man Komparatoren mit 'Comparator.thenComparing' (Java8 +) verkettet. – hoefling
- 1. Entwurfsmuster - Welches Muster ist das?
- 2. Welches ist das Beste? Domänenumleitung oder Alias?
- 3. Welches ist das beste PHP-Framework für den Anfang?
- 4. Sortierung Sammlung innerhalb der Sammlung mit Linq
- 5. Welches Entwurfsmuster implementiert PEAR DB_DataObject?
- 6. Welches ist der beste GUI-Designer für GTK-Apps?
- 7. Welches Datumsformat ist das?
- 8. Meteor Sortierung der Sammlung Abonnieren
- 9. Was ist das Entwurfsmuster "Dispatcher"?
- 10. welches ist das beste: facebox, dickbox, jquery ui dialog, andere?
- 11. CMS + Ecommerce - Welches Open Source Programm ist das beste?
- 12. überprüfen, ob eine Sammlung ist leer in Java: Welches ist die beste Methode ist,
- 13. Welches ist das beste Formularereignis zum dynamischen Laden eines Benutzersteuerelements?
- 14. Welches ist die beste IDE für Angular2/Typescript Für Windows
- 15. Was ist das Entwurfsmuster für die Verarbeitung von Befehlszeilenargumenten?
- 16. Welches Zeitformat ist das?
- 17. Welches Designmuster ist das?
- 18. Welches ist das beste Zahlungsgateway für den Service-Kauf in der iOS App?
- 19. Welches Designmuster ist das?
- 20. Welches könnte das beste Backbonejs Tutorial für Anfänger sein
- 21. nodejs - Welches "das" ist das?
- 22. Hotkey/Verknüpfung für: "Welches Plugin ist das?"
- 23. CodeFluent verwandte Sammlung Sortierung
- 24. Welches Datumsformat ist das?
- 25. MS-Access Entwurfsmuster für den letzten Wert für eine Gruppierung
- 26. Was ist das beste Datenzugriffsparadigma für Skalierbarkeit?
- 27. Welches Datenformat ist das?
- 28. Bestes Entwurfsmuster für das folgende Szenario
- 29. Welches ist das effizienteste Protokoll für zuverlässiges Multicast?
- 30. Entwurfsmuster für Verfolgung/Status
Das hat nichts mit Design-Muster zu tun hat. Wenn Sie Zugriff auf die Klasse haben, müssen Sie eine "Comparable" -Schnittstelle implementieren, mit der Sie eine Methode mit dem Namen 'compareTo (Object o)' überschreiben können. Lesen Sie dies in Stack Overflow. – MaxG