[JAVA] So sortieren Sie eine Liste von SelectItems

Liste der SelectItems, die häufig zum Festlegen von Auswahlmöglichkeiten verwendet werden. Möglicherweise möchten Sie anhand der aus der Datenbank erhaltenen Werte sortieren. Für einen solchen Fall.

--Umgebung - CentOS Linux release 7.8.2003 (Core) - openjdk version "11.0.7" 2020-04-14 LTS - JSF 2.3.9

Zum Beispiel, wenn es eine Liste von SelectItem wie dieses gibt

value label
1 Inu
3 Saru
0 Bär
2 Katze
/**Liste der SelectItems. */
@Getter
private List<SelectItem> items;

/**Legen Sie eine Liste von SelectItems fest. */
private void setItems() {
    this.items = new ArrayList<SelectItem>();
    this.items.add(new SelectItem(1, "Inu"));
    this.items.add(new SelectItem(0, "Bär"));
    this.items.add(new SelectItem(3, "Saru"));
    this.items.add(new SelectItem(2, "Katze"));
}

In aufsteigender Reihenfolge sortieren

Referenz: [Sammlungen (Java Platform SE 8)](https://docs.oracle.com/javase/jp/8/docs/api/java/util/Collections.html#sort-java.util.List-java. util.Comparator-)

value label
0 Bär
1 Inu
2 Katze
3 Saru
Collections.sort(this.items, new Comparator<SelectItem>() {
    @Override
    public int compare(SelectItem item1, SelectItem item2) {
        if (item1 != null && item2 != null) {
            if (item1.getValue() != null && item2.getValue() != null) {
                return item1.getValue().toString().compareTo(item2.getValue().toString());
            }
        }
        return 0;
    }
});

(Bonus) Holen Sie sich den Mindestwert

SelectItem minItem = Collections.min(this.items, new Comparator<SelectItem>() {
    //Der Inhalt entspricht dem Sortieren
});
var min = Integer.valueOf(minItem.getValue().toString());

Nach absteigendem Wert sortieren

Referenz: Comparator (Java Platform SE 8)

value label
3 Saru
2 Katze
1 Inu
0 Bär
//Ich habe gerade Item1 und Item2 in der aufsteigenden Rendite umgekehrt
Collections.sort(this.items, new Comparator<SelectItem>() {
    @Override
    public int compare(SelectItem item1, SelectItem item2) {
        if (item1 != null && item2 != null) {
            if (item1.getValue() != null && item2.getValue() != null) {
                return item2.getValue().toString().compareTo(item1.getValue().toString());
            }
        }
        return 0;
    }
});

In aufsteigender Reihenfolge des Etiketts sortieren

Referenz: Eine Liste von Hiragana und Alphabeten sortieren - Qiita

value label
1 Inu
0 Bär
3 Saru
2 Katze

Comparator.Verwendung des Vergleichens


this.items = this.items.stream().sorted(Comparator.comparing(SelectItem::getLabel)).collect(Collectors.toList());

Collator.Verwendung von getInstance


Collections.sort(this.items, new Comparator<SelectItem>() {
    @Override
    public int compare(SelectItem item1, SelectItem item2) {
        if (item1 != null && item2 != null) {
            if (item1.getLabel() != null && item2.getLabel() != null) {
                return Collator.getInstance(Locale.JAPANESE).compare(item1.getLabel(), item2.getLabel());
            }
        }
        return 0;
    }
});

In absteigender Reihenfolge des Etiketts sortieren

value label
2 Katze
3 Saru
0 Bär
1 Inu

Comparator.Verwendung des Vergleichens


// reversed()In absteigender Reihenfolge
this.items = this.items.stream().sorted(Comparator.comparing(SelectItem::getLabel).reversed()).collect(Collectors.toList());

Collator.Verwendung von getInstance


//Ich habe gerade Item1 und Item2 in der aufsteigenden Rendite umgekehrt
Collections.sort(this.items, new Comparator<SelectItem>() {
    @Override
    public int compare(SelectItem item1, SelectItem item2) {
        if (item1 != null && item2 != null) {
            if (item1.getLabel() != null && item2.getLabel() != null) {
                return Collator.getInstance(Locale.JAPANESE).compare(item2.getLabel(), item1.getLabel());
            }
        }
        return 0;
    }
});

Sortieren fehlgeschlagen

Ich habe eine nützliche Sache namens Comparator gefunden, also habe ich versucht, sie sofort zu verwenden, und bin fehlgeschlagen. Ein Kompilierungsfehler tritt um Comparator.comparing (SelectItem :: getValue) auf. Kann SelectItem nicht als Sortierschlüssel verwendet werden, da der Wert Object ist.

this.items = this.items.stream().sorted(Comparator.comparing(SelectItem::getValue)).collect(Collectors.toList());

Recommended Posts

So sortieren Sie eine Liste von SelectItems
So löschen / aktualisieren Sie das Listenfeld von OneToMany
[Rails] So zeigen Sie eine Liste der Beiträge nach Kategorie an
So sortieren Sie eine Liste mit Comparator
So bestimmen Sie die Anzahl der Parallelen
Passen Sie an, wie der Inhalt von Recyclerview aufgeteilt wird
Wie komme ich zum heutigen Tag?
Ausgabe der Verwendung der Slice-Methode
So zeigen Sie das Ergebnis des Ausfüllens des Formulars an
[Java] So erhalten Sie die URL der Übergangsquelle
Wie schreibe ich Scala aus der Perspektive von Java
[Java] So erhalten Sie den Maximalwert von HashMap
[Android] So erhalten Sie die Einstellungssprache des Terminals
[Rails] So erhalten Sie den Inhalt starker Parameter
So beurteilen Sie den Klick eines beliebigen Bildbereichs
Java: Verwenden Sie Stream, um den Inhalt einer Sammlung zu sortieren
So laden Sie eine ältere Version von Apache Tomcat herunter
[Swift] So erhalten Sie die Firebase-Dokument-ID
So zeigen Sie das Auswahlfeld von time_select alle 30 Minuten an
So verbinden Sie die Zeichenfolgen in der Liste durch Kommas getrennt
So erhalten Sie die längsten Informationen von Twitter ab dem 12.12.2016
So ändern Sie den Einstellwert von Springboot Hikari CP
[Ruby] So rufen Sie den Inhalt des Doppel-Hash ab
Hinzufügen von Elementen ohne Angabe der Länge des Arrays
So lösen Sie die Probleme, die durch die drei Blockierungswarteschlangen von Java verursacht werden
Wie man einige Methoden der zu testenden Klasse verspottet
So leiten Sie den letzten Tag des Monats in Java ab
So ändern Sie den Inhalt der JAR-Datei, ohne sie zu dekomprimieren
So überprüfen Sie die Erweiterung und Größe der hochgeladenen Dateien
[jsoup] So erhalten Sie die gesamte Dokumentation
Verwendung der link_to-Methode
[Java] Löschen Sie die Elemente von List
Verwendung der include? -Methode
Verwendung der Methode form_with
So finden Sie den durchschnittlichen Winkel
Liste der Java-Objekte sortieren
Verwendung von setDefaultCloseOperation () von JFrame
[Java] Verwendung von List [ArrayList]
So fügen Sie die Löschfunktion hinzu
[Rails] So erhalten Sie die URL der Übergangsquelle und leiten sie um
So legen Sie die IP-Adresse und den Hostnamen von CentOS8 fest
So zeigen Sie 0 auf der linken Seite des Standardeingabewerts an
[Rails / Heroku / MySQL] So setzen Sie die Datenbank der Rails-App auf Heroku zurück
So erhalten Sie den Inhalt von Map mithilfe des for-Anweisungsmemorandums
[Rails] So lassen Sie die Anzeige der Zeichenfolge der link_to-Methode weg
[Schienen] So ändern Sie den Seitentitel des Browsers für jede Seite
So erhalten Sie die ID des automatisch inkrementierten PRIMAY-Schlüssels in MyBatis
So geben Sie eine Liste von Zeichenfolgen in JSF als durch Kommas getrennte Zeichenfolgen aus
[chown] So ändern Sie den Eigentümer einer Datei oder eines Verzeichnisses
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
So ermitteln Sie die Länge einer Audiodatei mit Java