Collections.sort出了什么问题?

set*_*ora 1 java arrays sorting collections arraylist

我在String的ArrayList中没有特定顺序的这些字符串但是当我调用Collections.sort(listReference)时,排序的结果是不正确的,为什么10和11(最后2个字符)在07,08,09之前出现?

12880  20090506054200001
12880  20090506054200002
12880  20090513070200003
12880  20090513070200004
12880  20090520202600005
12880  20090520202600006
12880  20090520232900010
12880  20090520232900011
12880  20090520232900007
12880  20090520232900008
12880  20090520232900009
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 9

这对我来说可以:

import java.util.*;

public class Test {

      public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("12880  20090506054200001");
        list.add("12880  20090506054200002");
        list.add("12880  20090513070200003");
        list.add("12880  20090513070200004");
        list.add("12880  20090520202600005");
        list.add("12880  20090520202600006");
        list.add("12880  20090520232900010");
        list.add("12880  20090520232900011");
        list.add("12880  20090520232900007");
        list.add("12880  20090520232900008");
        list.add("12880  20090520232900009");

        Collections.sort(list);

        for (String x : list) {
          System.out.println(x);
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

输出:

12880  20090506054200001
12880  20090506054200002
12880  20090513070200003
12880  20090513070200004
12880  20090520202600005
12880  20090520202600006
12880  20090520232900007
12880  20090520232900008
12880  20090520232900009
12880  20090520232900010
12880  20090520232900011
Run Code Online (Sandbox Code Playgroud)

你绝对确定你的7/8/9条目在其他地方没有"奇怪"的东西(例如12880和时间戳之间的空格的不同元素)?

如果没有,你能否制作一个简短而完整的程序来证明这个问题?