Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Alphabetical sorting in treeset not working

Hi, my code is like this:

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

Output:

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

It's not sorting all strings in alphabetical order.Can any one help how to achieve an ascending order of the strings in treeset.

Thanks Madhu.

like image 449
Madhu Sudhan Reddy Avatar asked Aug 20 '13 10:08

Madhu Sudhan Reddy


1 Answers

The sorting is fine. It is done in case-sensitive manner. Since unicode code point of T comes before d, so, Testtxt comes before docdoc in sorted set.

Since you want to do case insensitive sorting, you can use a pre-defined static CASE_INSENSITIVE comparator defined in String class. Instantiate your TreeSet like this:

TreeSet<String> ts=new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
like image 116
Rohit Jain Avatar answered Sep 20 '22 22:09

Rohit Jain