java排序字符串对象
我只是想看看是否有一种简单的方法来排序字符串对象列表。我现在面临的问题是收藏。排序(…)这种方法对我不起作用
这是我的原始列表,出于我的需求,它被排序为:
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");
在收集之后。排序(值),顺序现在被打破:
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
这种行为是因为集合中使用的词典顺序。排序(…)?有没有一种更简单的方法可以让这类工作按照我的要求进行
提前谢谢
# 1 楼答案
您需要使用自定义比较器来提取字符串的数字部分,将其转换为整数实例,并比较这些整数:
但是,您也可以使用
Section
对象,而不是使用字符串来表示部分,该对象将具有一个number属性、一个toString()
方法,以及使用number属性的自然排序