Collections 未对字符串执行树集排序

Collections 未对字符串执行树集排序,collections,treeset,Collections,Treeset,这可能看起来是一个乏味的问题,而且与 我有一棵树 TreeSet<String> ts=new TreeSet<String>(String.CASE_INSENSITIVE_ORDER); ts.add("D1"); ts.add("D9"); ts.add("D5"); ts.add("D3"); ts.add("D8"); 但如果我在“D”上加上两位数 我知道 Tree set :

这可能看起来是一个乏味的问题,而且与

我有一棵树

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

        ts.add("D1");
        ts.add("D9");
        ts.add("D5");
        ts.add("D3");
        ts.add("D8");
但如果我在“D”上加上两位数

我知道

Tree set :: [D1, D11, D13, D17, D18, D3, D5, D8, D9]

这不正确……请帮忙

排序按字母顺序执行-所有1(1)都在3之前,然后是5、8、9


如果您想进行数字排序,您需要实现自己的比较器。

我觉得这似乎是正确的。首先考虑第一个字符进行排序,然后考虑第二个字符。。。
    ts.add("D1");
    ts.add("D9");
    ts.add("D5");
    ts.add("D3");
    ts.add("D8");
    ts.add("D11");
    ts.add("D18");
    ts.add("D17");
    ts.add("D13");
Tree set :: [D1, D11, D13, D17, D18, D3, D5, D8, D9]