2010-12-23 22 views
3

Mögliche Duplizieren:
Sort List Alphabeticallyjava - alphabetische Reihenfolge (Liste)

Wie speichere ich meine Eingaben in alphabetischer Reihenfolge, ich bin Eingabe von Namen in eine Arraylist:

persons.add(person); 

Wie geht das?

+0

Nur Methode der Sammlung verwenden Sortieren verwenden, wo Sie die Personen Liste übergeben. –

+0

Warum machen Sie nicht gemeinsam Ihre Hausaufgaben: http://stackoverflow.com/questions/1946668/sorting-using-comparator-descending-order-user-defined-classes. Es ist eine soziale Aktivität :) –

Antwort

5

Try this:

java.util.Collections.sort(people); 
0

Verwendung TreeSet statt Arraylist

+1

Nein, die Sache ist, dass ich ArrayList verwenden muss, weil ich es lernen muss. – Jake

+3

Das ist nicht wirklich eine sehr gute Antwort. TreeSet ist ein Set, keine Liste. Wenn er dieser Antwort blind folgt, könnte er Probleme (insbesondere keine doppelten Elemente) eingehen, ohne zu wissen, warum. –

+0

Die Frage war, wie die Elemente in alphabetischer Reihenfolge gespeichert werden, keine Einschränkungen für die Sammlung in der Frage. Die Tatsache, dass er Array-Liste verwendet, bedeutet nichts. –

5
Collection<Person> listPeople = new ArrayList<Person>(); 

Die Klasse Person.java wird Vergleichbare implementiert

public class Person implements Comparable<Person>{ 

public int compareTo(Person person) { 
    if(this.name != null && person.name != null){ 
    return this.name.compareToIgnoreCase(person.name); 
    } 
    return 0; 
} 

} 

Sobald Sie diese haben, in der Klasse, die Sie Wenn Sie weitere Personen hinzufügen, geben Sie Folgendes ein:

Collections.sort(listPeople); 
+0

java.util.ArrayList() bietet keine sort() Methode an! Von welcher Programmiersprache sprichst du? –

+0

Meine schlechte, seine Collections.sort (listPeople); – pringlesinn

+0

Seltsam. Ich bekomme diesen Fehler nur, wenn ich von der Kommandozeile aus kompiliere - in Eclipse hat 'ArrayList' eine' .sort' Methode. Vielleicht ist es ein Versions-Problem? – BrainSlugs83

9

implementiert Comparator<T> Schnittstelle

class A implements Comparator <Person> { 

    @Override 
    public int compare(Person o1, Person o2) { 
     if(o1.getName() != null && o2.getName() != null){ 
      return o1.getName().compareTo(o2.getName()); 
     } 

     return 0; 
    } 

} 

dann Collections.sort(/* list here */, /* comparator here*/)

Verwandte Themen