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