5

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.

Rohit Jain
  • 209,639
  • 45
  • 409
  • 525
Madhu Sudhan Reddy
  • 607
  • 5
  • 15
  • 22

1 Answers1

25

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);
Rohit Jain
  • 209,639
  • 45
  • 409
  • 525