2013-08-20 32 views
5

嗨,我的代码是这样的:字母排序在TreeSet中不工作

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

输出:

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

它不排序的所有字符串按字母order.Can任意一个帮助如何实现的treeset中字符串的升序。

谢谢 马杜。

回答

25

排序很好。这是以区分大小写的方式完成的。由于T的Unicode代码点在d之前,所以Testtxt在有序集合中位于docdoc之前。

既然你想做区分大小写排序,你可以使用String类中定义一个预定义的静态CASE_INSENSITIVE比较。例化你的TreeSet像这样:

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

+1:不知道这个,谢谢! –

+0

是的,它现在正在工作。谢谢你 –

+0

@ user2699528。别客气 :) –