Java编写程序:用泛型写数组的基本操作: 插入元素、删除元素,查找元素,返回第i个下标对应的元素。 2、扩展应用: 数组元素倒置,数组元素分拆,数组元素合并
时间: 2024-10-09 07:02:37 浏览: 38
建立类型为泛型类的数组-java泛型机制
在Java中,我们可以使用泛型(Generics)来编写更通用的数组操作方法,这样可以处理不同类型的数据。这里我会展示如何用泛型编写一些基本的数组操作,并给出扩展应用的例子:
1. **基本操作:**
- **插入元素(Add)**:
```java
public class ArrayUtils<T> {
public T[] insert(T[] array, int index, T element) {
T[] newArray = Arrays.copyOf(array, array.length + 1);
System.arraycopy(array, 0, newArray, 0, index);
newArray[index] = element;
return newArray;
}
}
```
- **删除元素(Remove)**:
```java
public T removeElement(T[] array, int index) {
if (index < 0 || index >= array.length) throw new IndexOutOfBoundsException();
T removedValue = array[index];
System.arraycopy(array, index + 1, array, index, array.length - index - 1);
array[array.length - 1] = null; // 或者直接删掉最后一个元素
return removedValue;
}
```
- **查找元素(Search)**:
```java
public int indexOf(T[] array, T target) {
for (int i = 0; i < array.length; i++) {
if (Objects.equals(array[i], target)) return i;
}
return -1;
}
- 返回第i个元素(Get Element by Index)**:
```java
public T getElement(T[] array, int index) {
return index >= 0 && index < array.length ? array[index] : null;
}
```
2. **扩展应用:**
- **数组元素倒置(Reverse)**:
```java
public T[] reverseArray(T[] array) {
T[] reversed = Arrays.copyOf(array, array.length);
reverse(reversed);
return reversed;
}
private void reverse(T[] array) {
int left = 0, right = array.length - 1;
while (left < right) {
swap(array, left++, right--);
}
}
```
- **数组元素分拆(Split)**:
```java
public T[][] splitArray(T[] array, int count) {
checkSize(array, count);
int size = array.length / count;
T[][] result = new T[count][size];
for (int i = 0; i < count; i++) {
System.arraycopy(array, i * size, result[i], 0, size);
}
return result;
}
private static void checkSize(T[] array, int count) {
if (array.length % count != 0) throw new IllegalArgumentException("Invalid count for array.");
}
}
```
- **数组元素合并(Merge)**:
```java
public T[] mergeArrays(T[]... arrays) {
List<T> mergedList = new ArrayList<>();
for (T[] arr : arrays) {
Collections.addAll(mergedList, arr);
}
return mergedList.toArray(new T[0]);
}
```
阅读全文