Das Beispiel dieses Artikels enthält die gemeinsame Methode der Listenobjekte in Java. Teilen Sie es für alle für Ihre Referenz. Die spezifische Analyse ist wie folgt:
In der in der Datenbank erkannten Liste werden häufig verschiedene Felder sortiert. Wenn Sie nicht in der Datenbank fragen, verbessert die direkte Sortierung in der ersten gefundenen Liste zweifellos die Leistung des Systems.
Solange die ersten erkannten Ergebnisse in der Sitzung gespeichert sind, können Sie die Liste sortieren. Im Allgemeinen kann die Listensortierung in Collections.sort (Liste) verwendet werden. Wenn die Liste jedoch ein Objekt enthält, ist diese Methode noch nicht möglich. Wie sortierst du es? Wenn es ein UserInfo -Objekt gibt, enthält es das folgende Feld:
Privat java.lang.Integer userId;
Jetzt müssen Sie die Benutzer -ID sortieren. Sie können die folgende Methode verwenden:
Collectionss.sort (Liste, neuer vergleicher () {public int compare (Objekt A, Objekt b) {int One = ((order) a) .getUerId (); int zwei = ((order) b) .getUerId (); Rücksende ein-zwei;}});
Wenn Sie auf diese Weise jedes Feld der UserInfo -Liste sortieren möchten, wird es dann von einem Segment wie oben in jedem Feld gezeigten Segment geschrieben? Das ist nicht das Ergebnis, das wir brauchen. Das Schreiben eines Programms ist immer raffinierter, und Sie können immer mehr überflüssiger schreiben. Können Sie eine allgemeine Methode schreiben? Die Antwort lautet ja, aber zuerst müssen wir die folgenden drei Fragen lösen:
1. Kann generischer Typ verwenden;
2. Eine gemeinsame Vergleichsmethode wie Vergleiche;
3. Gibt es eine Pan -Way -Methode wie generische und generische Methoden?
Das erste Problem kann gelöst werden. Das dritte Problem hat keine Pan -Way -Methode, die wir benötigen. Aber können wir es ändern und den GetMethod verwenden und Methoden aufrufen, um Methoden dynamisch aufzunehmen. Der Code ist wie folgt:
Öffentliche Klasse SortList <E> {public void sortieren (Liste <E> Liste, endgültige String -Methode, endgültige String -Sortierung) {collections.sort (Liste, neuer Vergleicher () {public int Compare (O. bky a, Objekt b) { int ret = 0; gleich (sortieren) // das inverted ((((((e) b) b), null) .tring (). Vergleiche (((e) a) a), null) .tring ()); else // positive Ordnung Ret Ret Ret = m1.invoke (((e) a), null) .tring (). vergleicheto (m2.invoke ((e) b), null) .tring ();} catch (NoSuchMethodException Ne) {System.out. println (ne);} catch (illegalAcessException dh) {System.out.println (dh);
Wenn wir uns den obigen Code ansehen, haben wir die oben genannten drei Probleme erfolgreich gelöst und die Auftrag des Aufwärtstrends hinzufügen. Es gibt keine spezifischen Objekte und Typen im Code und es ist bereits vielseitig. : Zum Beispiel "zum Beispiel" GetUserid ". Sie können den unten angegebenen Code zum Testen verwenden:
//Test.javapackage test; = New ArrayList <BersInfo> (); 11)); out.println ("------- Die ursprüngliche Sequenz ------------------------------- ----------------------- "" "); } // Rufen Sie die Universal Class SortList <UserInfo> Sorthtlist = New SortList <BersInfo> () auf. ---------------------------------------- ") für (userInfo user: list) {system.out.println (user.toString ());} // drücken Sie Benutzername sortlist.sort (Liste, "getUerername", null); -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --- "););} // sortlist.sort (Liste," getBithDatestres ", null); System.out.println (" --------------- -------------- -------------------------- "); für (userInfo user: list) { System.out.println (user.toString ());}}}
Die Testergebnisse sind wie folgt:
------- Originalsequenz ------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------- 3; 10-01; 3; ------ 2; -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------- -------- 2; -01;
Hinweis: Die Sortierung des Datums wird zunächst durch das Format transformiert, andernfalls gibt es kein korrektes Ergebnis.
Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.