Сортировка списка из Arrays.asList () также изменяет исходный массив? - PullRequest
4 голосов
/ 23 февраля 2010

Я заметил странное поведение (для меня) при сортировке списка, полученного с помощью Arrays.asList(). Похоже, что после Collections.sort( list ) исходный массив также сортируется!

Как это возможно?

List<Rate> rates = Arrays.asList( arrayRates );
Collections.sort( rates, new RateEffectiveDateComparator() );
/* after that the rates list AND arrayRates array are sorted in the same way */

1 Ответ

9 голосов
/ 23 февраля 2010

Из документации Arrays.asList ():

Возвращает список фиксированного размера, поддерживаемый указанным массивом. (Изменения в возвращаемом списке «сквозная запись» в массив.)

Массив, который вы передадите, будет массивом, на котором основан список. При сортировке списка вы фактически сортируете массив. Проверьте исходный код Arrays.asList() ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...