给定一个数组,要求用java写一个expand函数,把原有的数组长度扩容N倍,并保留原有数组内容,其余数据用默认值代替即可。.
时间: 2024-12-24 17:35:07 浏览: 3
在Java中,你可以创建一个新的大数组并将原始数组的内容复制过去,然后用默认值填充剩余的部分。以下是一个简单的`expand`函数示例:
```java
import java.util.Arrays;
public class ArrayExpansion {
public static <T> T[] expand(T[] originalArray, int newLength, T defaultValue) {
// 检查新长度是否大于原始长度
if (newLength <= originalArray.length) {
throw new IllegalArgumentException("New length must be greater than the original array length.");
}
// 创建新的大数组
T[] expandedArray = (T[]) java.lang.reflect.Array.newInstance(originalArray.getClass().getComponentType(), newLength);
// 复制原始数组的内容到新数组
System.arraycopy(originalArray, 0, expandedArray, 0, originalArray.length);
// 使用默认值填充剩余部分
for (int i = originalArray.length; i < newLength; i++) {
expandedArray[i] = defaultValue;
}
return expandedArray;
}
}
```
在这个例子中,`<T>`是一个泛型,允许你指定任意类型的数组。`System.arraycopy()`方法用于从原数组复制元素到新数组。`defaultValue`参数是你想要用作默认值的对象。
阅读全文