问题
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.
回答1:
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);
来源:https://stackoverflow.com/questions/18333154/alphabetical-sorting-in-treeset-not-working