在Java中,根据数组索引删除元素通常有以下几种方法:
使用ArrayList
```java
import java.util.ArrayList;
public class RemoveArrayListElement {
public static void main(String[] args) {
ArrayList
names.add("John");
names.add("Mary");
names.add("Bob");
names.remove(1); // 删除索引为1的元素(即"Mary")
System.out.println(names); // 输出:[John, Bob]
}
}
使用Apache Commons Lang3
```java
import org.apache.commons.lang3.ArrayUtils;
public class RemoveElementFromArray {
public static void main(String[] args) {
String[] array = {"1", "3", "6", "7", "9"};
array = ArrayUtils.remove(array, 2); // 删除索引为2的元素
System.out.println(Arrays.toString(array)); // 输出:[1, 3, 7, 9]
}
}
使用System.arraycopy
```java
public class RemoveElementFromArray {
public static void main(String[] args) {
int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int[][] newArr = new int[arr.length - 1][];
System.arraycopy(arr, 0, newArr, 0, 2); // 删除第一行
System.arraycopy(arr, 3, newArr, 2, arr.length - 3);
System.out.println(Arrays.deepToString(newArr)); // 输出:[[1, 2], [4, 5, 6, 7, 8, 9]]
}
}
手动创建新数组
```java
public class RemoveElementFromArray {
public static void main(String[] args) {
int[] oldArray = {3, 4, 5, 6, 7};
int num = 2; // 删除索引为2的元素,即删除第三个元素
int[] newArray = new int[oldArray.length - 1];
for (int i = 0, j = 0; i < oldArray.length; i++) {
if (i != num - 1) {
newArray[j++] = oldArray[i];
}
}
System.out.println(Arrays.toString(newArray)); // 输出:[3, 4, 6, 7]
}
}
请注意,Java中的数组是固定长度的,因此不能直接删除元素。上述方法中,我们通过创建一个新的数组并将原始数组中要保留的元素复制到新数组中来实现删除操作。