2016-06-21 29 views
-3

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

+1

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

Antwort

0

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/

+1

Außerdem kann man leicht verschachtelte Sortierung erreichen, indem man Komparatoren mit 'Comparator.thenComparing' (Java8 +) verkettet. – hoefling

Verwandte Themen