对 Arrays.asList() 中的列表进行排序也会更改原始数组吗?

发布于 2024-08-22 05:29:53 字数 348 浏览 4 评论 0原文

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

I noticed a strange behavior (for me) when sorting a list retrieved with Arrays.asList(). It seems that after Collections.sort( list ), the origin array is also sorted !

How is it possible ?

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 */

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自由范儿 2024-08-29 05:29:53

来自 Arrays.asList() 的文档:

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

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

From the documentation of Arrays.asList():

Returns a fixed-size list backed by the specified array. (Changes to the returned list "write through" to the array.)

The array you pass will be the array the list is based on. When sorting the list, you are actually sorting the array. Check the sourcecode of Arrays.asList()...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文