2013-08-20 6 views
5

Hallo, ist mein Code wie folgt aus:Alphabetisch in TreeSet Sortierung nicht funktioniert

TreeSet<String> ts=new TreeSet<String>(); 

ts.add("Testtxt"); 
ts.add("Testxml"); 
ts.add("docdoc"); 
ts.add("ePeoplexml"); 
ts.add("fantasyxlsx"); 
ts.add("idaddedgif"); 
ts.add("idaddedrtf"); 

System.out.println("Tree set :: "+ts); 

Ausgang:

Tree set :: [Testtxt, Testxml, docdoc, ePeoplexml, fantasyxlsx, idaddedgif, idaddedrtf] 

Es ist nicht alle Strings in alphabetischer order.Can Sortierung irgendeine Hilfe, wie ein erreichen aufsteigende Reihenfolge der Strings in treeset.

Danke Madhu.

Antwort

25

Die Sortierung ist in Ordnung. Es wird auf die Groß-/Kleinschreibung geachtet. Da der Unicode-Codepunkt T vor d steht, steht also Testtxt vor docdoc in sortierter Menge.

Da Sie Groß- und Kleinschreibung Sortierung tun möchten, können Sie eine vordefinierte statische CASE_INSENSITIVE Komparator in String Klasse definiert verwenden. Instanziieren Sie Ihre TreeSet wie folgt:

TreeSet<String> ts=new TreeSet<String>(String.CASE_INSENSITIVE_ORDER); 
+0

+1: Wusste das nicht, danke! –

+0

Ja, es funktioniert jetzt. Danke –

+0

@ user2699528. Bitte :) –