【问题标题】:Sort a list from Arrays.asList() changes also the origin array?从 Arrays.asList() 中对列表进行排序也会更改原始数组吗?
【发布时间】:2011-01-20 02:29:28
【问题描述】:

在对使用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 */

【问题讨论】:

    标签: java list collections arrays sorting


    【解决方案1】:

    来自 Arrays.asList() 的文档:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 2017-05-17
      • 2010-09-17
      • 2020-09-13
      • 2018-04-16
      • 1970-01-01
      相关资源
      最近更新 更多