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(...)中使用的词典排序吗?是否有更简单的方法使这种排序按我想要的方式工作?
提前致谢.
这是因为Collections.sort(...)中使用的词典排序吗?
绝对.您已根据自然顺序对字符串进行了排序.
是否有更简单的方法使这种排序按我想要的方式工作?
创建一个实现Comparator<String>表达您要使用的比较的类,并将其作为第二个参数传递给Collections.sort.您必须自己编写逻辑(或者找到第三方库).我认为标准库中没有任何东西可以做到这一点.(你会考虑区分大小写以及可能还有其他各种事情.)
当然,如果你可以改变你的数据是section_01,section_02等等,这将意味着你可以只使用自然排序顺序...