gpt4 book ai didi

java - 为什么 Arrays.asList() 返回自己的 ArrayList 实现

转载 作者:IT老高 更新时间:2023-10-28 20:43:54 28 4
gpt4 key购买 nike

我最近发现在 Java 中实际上有 2 种不同的 ArrayList 实现(迟到总比没有好......)。

所以我想知道为什么 Arrays.asList(T... a) 需要返回一个无法调整大小的列表?如果他们需要一个不可修改的列表,为什么要添加 set(int index, E element) 方法呢?

所以我的一般问题是为什么不从 Arrays.asList(T... a) 方法返回 java.util.ArrayList

您还可以从 java.util.Arrays.ArrayList 实现中获得什么?

最佳答案

你问:

Also what do you gain with the java.util.Arrays.ArrayList implementation ?

这是因为 Arrays.asList 返回的 Arrays$ArrayList 只是对原始数组的一个 View 。所以当原始数组改变时, View 也会改变。

如果使用真正的 ArrayList,则元素将被复制,并且对原始数组的更改不会影响 ArrayList。

这样做的原因很简单:

  • 性能:无需复制任何东西
  • 高效内存:不需要第二个数组

关于java - 为什么 Arrays.asList() 返回自己的 ArrayList 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4658867/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com