Skip to content

ArrayList源码分析中对toArray()的描述“调用者可以自由地修改返回的数组”不准确。Arrays.copyOf()在元素是引用类型时是浅拷贝,自由修改数组,也是修改了原数组中的元素 #2433

Open
@90srlb

Description

@90srlb

/** * 以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。 * 返回的数组将是“安全的”,因为该列表不保留对它的引用。 (换句话说,这个方法必须分配一个新的数组)。 * 因此,调用者可以自由地修改返回的数组。 此方法充当基于阵列和基于集合的API之间的桥梁。 */ public Object[] toArray() { return Arrays.copyOf(elementData, size); }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions