从Arrays.asList()中排序列表也改变了原点数组?

时间:2010-02-23 14:32:07

标签: java list collections arrays sorting

在排序使用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 个答案:

答案 0 :(得分:9)

来自Arrays.asList()的文档:

  

返回由指定数组支持的固定大小的列表。 (对返回列表的更改“直写”到数组。)

您传递的数组将是列表所基于的数组。排序列表时,实际上是对数组进行排序。检查Arrays.asList() ...

的源代码