java合并2个相同类型数组的内容
时间: 2024-03-03 17:48:37 浏览: 59
合并数组中相同的项
在Java中,可以使用 `System.arraycopy()` 方法或者 `Arrays.copyOf()` 方法将两个相同类型的数组合并为一个。下面分别介绍这两种方法的使用:
1. 使用 `System.arraycopy()` 方法
```java
public static <T> T[] concatenate(T[] a, T[] b) {
int aLen = a.length;
int bLen = b.length;
@SuppressWarnings("unchecked")
T[] c = (T[]) Array.newInstance(a.getClass().getComponentType(), aLen + bLen);
System.arraycopy(a, 0, c, 0, aLen);
System.arraycopy(b, 0, c, aLen, bLen);
return c;
}
```
在上述代码中,我们定义了一个 `concatenate()` 方法,其参数为两个相同类型的数组,返回值也是一个相同类型的数组。该方法内部使用 `System.arraycopy()` 方法将两个数组合并为一个。需要注意的是,我们使用 `Array.newInstance()` 方法创建了一个新的数组对象。
2. 使用 `Arrays.copyOf()` 方法
```java
public static <T> T[] concatenate(T[] a, T[] b) {
int aLen = a.length;
int bLen = b.length;
T[] c = Arrays.copyOf(a, aLen + bLen);
System.arraycopy(b, 0, c, aLen, bLen);
return c;
}
```
在上述代码中,我们也定义了一个 `concatenate()` 方法,其参数为两个相同类型的数组,返回值也是一个相同类型的数组。该方法内部使用 `Arrays.copyOf()` 方法将第一个数组扩展为所需长度,然后使用 `System.arraycopy()` 方法将第二个数组拷贝到新数组的末尾。
使用上述两种方法都可以将两个相同类型的数组合并为一个。需要注意的是,在合并数组时,要注意新数组的长度要足够容纳两个原数组的元素。
阅读全文