数组复制 java
时间: 2023-10-11 16:21:40 浏览: 87
在 Java 中,可以使用 `System.arraycopy()` 方法或者 `Arrays.copyOf()` 方法来实现数组的复制。
`System.arraycopy()` 方法的语法如下:
```java
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
```
其中,`src` 表示源数组,`srcPos` 表示源数组中要复制的起始位置,`dest` 表示目标数组,`destPos` 表示目标数组中要复制的起始位置,`length` 表示要复制的元素个数。
示例代码:
```java
int[] src = {1, 2, 3, 4, 5};
int[] dest = new int[5];
System.arraycopy(src, 0, dest, 0, 5);
```
`Arrays.copyOf()` 方法的语法如下:
```java
public static int[] copyOf(int[] original, int newLength)
```
其中,`original` 表示源数组,`newLength` 表示要复制的元素个数。
示例代码:
```java
int[] src = {1, 2, 3, 4, 5};
int[] dest = Arrays.copyOf(src, 5);
```
相关问题
复制数组代码java
在Java中,复制数组可以通过多种方法实现,下面提供几种常见的方法:
1. 使用 `System.arraycopy()` 方法:
这是一个高效的数组复制方法,可以直接在JVM层面操作,复制速度非常快。使用这个方法需要指定目标数组、目标起始位置、源数组、源起始位置和复制元素的数量。
```java
int[] source = {1, 2, 3, 4, 5};
int[] destination = new int[source.length]; // 创建一个新数组作为目标数组
System.arraycopy(source, 0, destination, 0, source.length); // 复制数组
```
2. 使用 `Arrays.copyOf()` 方法:
`Arrays` 类提供了 `copyOf` 方法,它可以用来复制数组,同时还可以指定新数组的长度,如果新数组长度大于原数组,不足的部分会用默认值填充(例如,基本数据类型数组用0填充,对象数组用null填充)。
```java
int[] source = {1, 2, 3, 4, 5};
int[] destination = Arrays.copyOf(source, source.length); // 复制数组,长度与原数组相同
int[] destination2 = Arrays.copyOf(source, source.length + 2); // 复制数组,长度比原数组多2
```
3. 使用循环和逐个复制元素:
如果需要更细致的操作,或者在某些特殊的场景下,可以使用循环结构逐个元素复制。
```java
int[] source = {1, 2, 3, 4, 5};
int[] destination = new int[source.length];
for (int i = 0; i < source.length; i++) {
destination[i] = source[i]; // 逐个元素复制
}
```
4. 使用 Java 8 的流(Stream)API:
从Java 8开始,可以利用流来实现数组的复制。
```java
int[] source = {1, 2, 3, 4, 5};
int[] destination = Arrays.stream(source).toArray(); // 使用流复制数组
```
以上就是在Java中复制数组的几种常见方法。
java两个数组复制
在Java中,有多种方法可以将一个数组复制到另一个数组。这里列举几种常见的方法:
1. **for循环遍历**:
```java
int[] source = {1, 2, 3};
int[] target = new int[source.length];
for (int i = 0; i < source.length; i++) {
target[i] = source[i];
}
```
2. **System.arraycopy()**:
这个方法效率较高,因为它是一次性复制多个元素:
```java
int[] source = {1, 2, 3};
int[] target = new int[source.length];
System.arraycopy(source, 0, target, 0, source.length);
```
3. **递归复制**:
适用于较小规模的数组,但对于大数据量不推荐:
```java
public static int[] copyArray(int[] src) {
if (src == null || src.length == 0) return new int[0];
int[] dest = new int[src.length];
dest[0] = src[0];
for (int i = 1; i < src.length; i++) {
dest[i] = src[i];
}
return dest;
}
```
4. **泛型数组复制** (仅限于Java 5及以上版本):
如果目标数组类型已知,可以使用`Arrays.copyOf()`函数:
```java
Integer[] source = {1, 2, 3};
Integer[] target = Arrays.copyOf(source, source.length);
```
阅读全文