Nehmen wir an, ich habe eine unsortierte Liste mit vier Objekten: [B, C, A, D]
.
Alle vier Objekte sind vom gleichen Typ und:
(A > B),
(C > D),
(A != C or D)
(B != C or D)
(C != A or B)
(D != A or B).
Unter !=
Ich meine damit, dass sie weder weniger als die anderen Objekte, noch gleich oder größer als diese sind.
Ich muss die Liste so "sortieren", dass A
wird immer Vorrang haben vor B
y C
wird immer Vorrang haben vor D
. Über diese beiden Anforderungen hinaus habe ich keine Anforderungen an die Reihenfolge der Liste; daher sollte die Sortierfunktion bei der zuvor beschriebenen Liste entweder [A, B, C, D]
o [C, D, A, B]
.
Was die Ursache dieses Problems betrifft, so versuche ich, ein Array von java.lang.Class
Objekte auf der Grundlage ihrer Beziehungen zueinander. Zum Beispiel, wenn A
ist die Superklasse/Superschnittstelle von B
alors A
ist weniger als B
. Wenn A
erweitert/implementiert B
dann ist A
größer-als B
. Wenn A
でございます B
dann natürlich A
イコール B
. Ansonsten, A
ist überhaupt nicht vergleichbar mit B.