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)
这对我来说可以:
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和时间戳之间的空格的不同元素)?
如果没有,你能否制作一个简短而完整的程序来证明这个问题?