2013-08-20 17 views
5

Witam, mój kod jest tak:sortowanie alfabetyczne w TreeSet nie działa

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); 

wyjściowa:

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

To nie wszystkie sznurki w sortowaniu alfabetycznym order.Can któregokolwiek pomoc jak do osiągnięcia rosnąca kolejność łańcuchów w treeset.

Dzięki Madhu.

Odpowiedz

25

Sortowanie jest w porządku. Robi się to w sposób uwzględniający wielkość liter. Ponieważ kodowany kod Unicode o numerze T występuje przed d, więc Testtxt występuje przed sortowanym zestawem.

Ponieważ chcesz zrobić wielkość liter ma znaczenie sortowania, można użyć predefiniowanego statycznego CASE_INSENSITIVE porównawczy określony w String klasie. Natychmiast utworzymy Twój numer TreeSet w następujący sposób:

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

+1: Nie wiedziałem tego, dzięki! –

+0

Tak, działa teraz. Dziękuję –

+0

@ user2699528. Nie ma za co :) –

Powiązane problemy