gpt4 book ai didi

Java将数组复制到自身

转载 作者:行者123 更新时间:2023-11-29 03:12:17 24 4
gpt4 key购买 nike

我可以在不创建新数组对象的情况下将数组复制到自身吗(目的是增加它的大小)?我知道使用 Collections 我不会有这样的问题,所以你不需要提醒我关于 Collections 的用法来解决这个问题。我确信 Arrays.copyOfSystem.arraycopy 为此目的创建了一个新对象并将旧数组对象留在堆中。
但是今天我在谷歌上搜索并在堆栈中发现了这个问题 How to effectively copy an array in java?那里写道 System.arraycopy 在复制数组时不会创建新对象,它会复制到现有数组中。我很奇怪,当我读到这篇文章并建议这将适用于将数组复制到自身中时,但我还没有找到合适的例子来做到这一点。那么有没有一种方法可以通过增加数组的大小来将数组复制到自身,而无需创建新的数组对象(堆将保留)或不创建?

最佳答案

System.arraycopy 可用于将数组复制到自身。

来自Javadoc :

 * If the <code>src</code> and <code>dest</code> arguments refer to the
* same array object, then the copying is performed as if the
* components at positions <code>srcPos</code> through
* <code>srcPos+length-1</code> were first copied to a temporary
* array with <code>length</code> components and then the contents of
* the temporary array were copied into positions
* <code>destPos</code> through <code>destPos+length-1</code> of the
* destination array.

但是,将数组复制到自身不会帮助您增加其大小,因为您无法增加数组的大小。您必须创建一个更大的新数组并将原始数组的元素复制到新数组。

关于Java将数组复制到自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28676922/

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