В соответствии с documentation: Эта реализация свалки указанного списка в массив, сортирует массив и перебирает список перезапуске каждый элемент из соответствующей позиции в массивеСортировка строк с помощью метода Collections.sort()
Учитывая приведенную ниже программу, я не могу понять сортировку, как внутренне jvm считает, что письмо 'A'
меньше или больше, чем письмо 'a'
? Поскольку это строка, буквы не будут приниматься в значении ascii, так как происходит сортировка?
public class LetterASort {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList();
strings.add("aAaA");
strings.add("AaA");
strings.add("aAa");
strings.add("AAaa");
Collections.sort(strings);
for (String s : strings)
{
System.out.print(s + " "); //prints AAaa AaA aAa aAaA
}
}
}
Также я попытался отладки кода, который создал новое сомнение для меня: длина массива оказался 4, а не 3, как collections.sort
входит в длину
Почему вы ожидаете длину 3? Я вижу 4 элемента, добавленных в arraylist –
, но длина индекса массива начинается с 0 справа? – kittu
Да, но это нормально: a _length_ из 4 означает, что индекс _last_ равен 3. Индексы являются {0, 1, 2, 3}. Здесь есть четыре числа (т. Е. Длина), наибольшая из которых равна 3 (т. Е. Последнему индексу). – yshavit