Die alphabetische Sortierung Treeset
Wie bekomme ich das treeset, alphabetisch zu Sortieren?
Und Duplikate entfernen.. es ist gewesen fahrend mich Nüsse für einen Tag. Vielleicht brauche ich, um etwas Schlaf zu bekommen..
public static void main(String[] args) {
String fileName = args[0];
String words;
Scanner s = null;
Iterator itr;
try {
s = new Scanner(new BufferedReader(new FileReader(fileName)));
while (s.hasNext()) {
words = s.next();
TreeSet<String> ts = new TreeSet<String>();
ts.add(words);
System.out.println(ts);
}
} catch (FileNotFoundException fnfe) {
System.exit(0);
} finally {
if (s != null) {
s.close();
}
}
}
Sie haben Duplikate? In einer Reihe?
Sie machen ein neues TreeSet für jedes Wort...
gut, es wird möglich - mit einer schlecht gestalteten
Die Erstellung von one
Sie machen ein neues TreeSet für jedes Wort...
gut, es wird möglich - mit einer schlecht gestalteten
hashCode()
oder equals()
- aber ich denke, es ist schwieriger mit geschlossenen String
Klasse 🙂Die Erstellung von one
TreeSet
für alle die Worte, und nicht die Mühe aufrufen Collections.sort
.
InformationsquelleAutor A C | 2013-03-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
TreeSet
hält das set in einer Baum-Struktur, die automatisch sortiert in natürlicher Reihenfolge. Jede Klasse, die dasComparable
Schnittstelle sortiert werden. Die Klasse String implementiert dieComparable
- Schnittstelle bereits, so dass Sie nicht haben, etwas zu tun zu Sortieren, fügen Sie es einfach auf dieTreeSet
.Sets können keine Duplikate enthalten, wenn die
hashCode()
undequals()
Methoden implementiert sind, wie Sie sollten.EDIT: Die
TreeSet<String> ts = new TreeSet<String>();
befindet sich in derwhile()
loop-Umfang. Sie initialisieren es mit jeder Schleife und verlieren die Daten drom des vorherigen. Deklarieren Sie Sie außerhalb der Schleife und verwenden Sie nichtCollection.sort()
String
,hashCode
undequals
sind bereits umgesetzt (richtig) für Sie...Sicher, für 99,999% der Fälle, aber es kann immer noch passieren, dass zwei unterschiedliche Strings haben eine hash-Kollision (den gleichen hash).
die Möglichkeit einer hash-Kollision ist der Grund, warum die
equals
Methode ist auch erforderlich, umgesetzt werden, und richtig.Ich bin mit einem text-Datei zu importieren, die Worte, "dies ist ein test der import-Funktion-Funktion". (es wird also ein dupe Wort). Aber wenn es automatisch sortiert wird, warum wird es zeigen, bis in der Reihenfolge, in der text-Datei und nicht der alphabetischen, und die dummen word nicht entfernt, oder? Sorry, wenn das eine noob Frage!
Die
main
Programm, das Sie uns mitgeteilt haben, nicht alles drucken. Geben Sie uns ein Beispiel für den code, den Sie tatsächlich verwenden, und einige Beispiel-Eingabe, auf dem es scheitert.InformationsquelleAutor emd