排序String对象

Mar*_*nio 1 java sorting collections

我只是想看看是否有一种简单的方法来对String对象列表进行排序.我现在面临的问题是Collections.sort(...)方法对我不起作用.

这是我的原始列表,根据我的要求目的排序:

    List<String> values = new ArrayList<String>();


    values.add("section_1");
    values.add("section_2");
    values.add("section_3");
    values.add("section_4");
    values.add("section_5");
    values.add("section_6");
    values.add("section_7");
    values.add("section_8");
    values.add("section_9");
    values.add("section_10");
    values.add("section_11");
    values.add("section_12");
    values.add("section_13");
Run Code Online (Sandbox Code Playgroud)

在完成Collections.sort(values)之后,订单现在被破坏了:

section_1
section_10
section_11 
section_12
section_13
section_2
section_3
section_4
section_5
section_6
section_7
section_8
section_9
Run Code Online (Sandbox Code Playgroud)

这是因为Collections.sort(...)中使用的词典排序吗?是否有更简单的方法使这种排序按我想要的方式工作?

提前致谢.

Jon*_*eet 9

这是因为Collections.sort(...)中使用的词典排序吗?

绝对.您已根据自然顺序对字符串进行了排序.

是否有更简单的方法使这种排序按我想要的方式工作?

创建一个实现Comparator<String>表达您要使用的比较的类,并将其作为第二个参数传递给Collections.sort.您必须自己编写逻辑(或者找到第三方库).我认为标准库中没有任何东西可以做到这一点.(你会考虑区分大小写以及可能还有其他各种事情.)

当然,如果你可以改变你的数据section_01,section_02等等,这将意味着你可以只使用自然排序顺序...