Java 是根据什么求出字符串数组的最大值和最小值的?

On what bases the Java finds the maximum and minimum values of String array?

今天我在练习 java 编程,遇到一个程序让我想知道如果我在数组中找到字符串的最大值和最小值会发生什么。

    // Creating an Array List
    ArrayList<String> myArrayList = new ArrayList<String>();

    // Adding values
    myArrayList.add("Hello World");
    myArrayList.add("My Name is Some Body");
    myArrayList.add("I am many Years old");
    myArrayList.add("And I love Java programming");

    // To find min and max in Array
    String min = Collections.min(myArrayList);
    String max = Collections.max(myArrayList);

    // Print min and max in Array
    System.out.println("Min: " +min);
    System.out.println("Max: " +max);

它给出了输出:

Min: And I love Java programming
Max: My Name is Some Body

我很好奇它是根据什么来确定String数组的最大值和最小值的?它在程序中有什么用处?

Collections.maxCollections.min 比较对象的自然顺序。

对于Strings,是字典序(即字母顺序)比较。

在自然顺序比较的众多用途中,您可以轻松地按字母顺序 String 排序。

在这种情况下它正在做字符串比较。检查集合 class.

中的 min 方法
public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll) {
    Iterator<? extends T> i = coll.iterator();
    T candidate = i.next();

    while (i.hasNext()) {
        T next = i.next();
        if (next.compareTo(candidate) < 0)
            candidate = next;
    }
    return candidate;
}

它检查每个单词的第一个字母ASCII 码。 如果第一个字母的 ASCII 码比其他字母小,那么它会认为它是小字符串,否则它会认为它比其他字母大。