Hallo da muß ich meine Array-Liste sortieren, dass die folgende Art von Daten enthält:Java Sortierungsobjekt Arraylist mit alphanumerischen Zeichenfolge
name1 1111 1622 122ks
name3 1211 4122 1aks
name2 1113 1322 12sks
name10 2111 1222 12dks
...
name4 asd1 2334 asd8
Es ist einfach Modellklasse Datum zu füllen! Nun, was ich tun möchte, ist auf den Grundlagen des Namens zu vergleichen, z. B. Name1 im Vergleich zu Name2 und so weiter. Dafür mache ich wie:
public class ABC implements Comparator<MyModel> {
@Override
public int compare(MyModel o1, MyModel o2) {
return o1.name.compareTo(o2.name);
}
}
Es gib mir die Ausgabe als ich erforderlich! Aber wenn es nennen sind mehr als 10 I Mean Namen nach 10 11 12 mein Komparator gewohnt gibt mir die erforderliche sortierte Liste als ich brauche, und der Ausgang wird:
name1 1111 1622 122ks
name10 1211 4122 1aks
name11 1113 1322 12sks
name12 2111 1222 12dks
...
name2 asd1 2334 asd8
... (sorted so on)
Was ich falsch gemacht? Ist die Art, wie ich es tue, falsch oder gibt es einen anderen Weg, es zu erreichen? Danke im Voraus!
Diese sparen Die Sortierung erfolgt, weil das Leerzeichen in der Sortierreihenfolge niedriger ist als andere Zeichen wie Zahlen. Außerdem wird jedes Zeichen einzeln verglichen, nicht zu Zahlen aggregiert. Wenn Sie mit den Zahlen wie erwartet sortieren möchten, müssen Sie Ihren eigenen Vergleicher schreiben. – Jason