Java在什么基础上找到String数组的最大值和最小值?

时间:2015-03-23 11:29:29

标签: java arrays max min

今天我正在练习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数组的最大值和最小值?它如何在程序中有用?

3 个答案:

答案 0 :(得分:2)

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

对于String s,它是词典(即字母)比较。

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

答案 1 :(得分:1)

在这种情况下,它正在进行字符串比较。检查集合类中的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;
}

答案 2 :(得分:1)

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