为什么 Collections.sort 没有将这些字符串按正确的顺序排列?

Iva*_*aNs 0 java sorting collections

我是 Java 的初学者。我不明白为什么这段代码不能正常工作。我糊涂了。有人可以解释为什么。这是我的代码:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class HW20 {

    public static ArrayList<String> abc(String ... strings) {

        ArrayList<String> strings1 = new ArrayList<>(Arrays.asList(strings));
        Collections.sort(strings1);
        return strings1;
    }

    public static void main(String[] args) {

        ArrayList<String> strings1 = abc("1", "9", "4", " 2", "6", "8", "3", "5", "7", "0");
        System.out.println(strings1);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

[ 2, 0, 1, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

谢谢!

tem*_*def 5

请注意,字符串中有一个空格字符" 2"。这意味着当字符串被比较时,由于空格的 ASCII 代码低于任何其他数字的 ASCII 代码," 2"将比所有其他字符串都少,这就是它首先出现的原因。删除该空格字符将导致字符串以(按字典顺序)排序的顺序返回。