Java 实例 - 删除数组元素
Java 的数组是固定长度的,无法直接删除,我们可以通过创建一个新数组,把原始数组中要保留的元素放到新数组中即可:
Main.java 文件
import java.util.Arrays;
public class RunoobTest {
public static void main(String[] args) {
int[] oldarray = new int[] {3, 4, 5, 6, 7};// 原始数组
int num = 2; // 删除索引为 2 的元素,即删除第三个元素 5
int[] newArray = new int[oldarray.length-1];// 新数组,长度为原始数组减去 1
for(int i=0;i<newArray.length; i++) {
// 判断元素是否越界
if (num < 0 || num >= oldarray.length) {
throw new RuntimeException("元素越界... ");
}
//
if(i<num) {
newArray[i] = oldarray[i];
}
else {
newArray[i] = oldarray[i+1];
}
}
// 打印输出数组内容
System.out.println(Arrays.toString(oldarray));
oldarray = newArray;
System.out.println(Arrays.toString(oldarray));
}
}
import java.util.Arrays;
public class RunoobTest {
public static void main(String[] args) {
int[] oldarray = new int[] {3, 4, 5, 6, 7};// 原始数组
int num = 2; // 删除索引为 2 的元素,即删除第三个元素 5
int[] newArray = new int[oldarray.length-1];// 新数组,长度为原始数组减去 1
for(int i=0;i<newArray.length; i++) {
// 判断元素是否越界
if (num < 0 || num >= oldarray.length) {
throw new RuntimeException("元素越界... ");
}
//
if(i<num) {
newArray[i] = oldarray[i];
}
else {
newArray[i] = oldarray[i+1];
}
}
// 打印输出数组内容
System.out.println(Arrays.toString(oldarray));
oldarray = newArray;
System.out.println(Arrays.toString(oldarray));
}
}
以上代码运行输出结果为:
[3, 4, 5, 6, 7]
[3, 4, 6, 7]
我们也可以使用 ArrayList 来实现这个功能,ArrayList 是动态数组,操作起来更加方便。
以下实例演示了如何使用 ArrayList 的 remove () 方法来删除数组列表的元素:
Main.java 文件
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> objArray = new ArrayList<String>();
objArray.clear();
objArray.add(0,"第 0 个元素");
objArray.add(1,"第 1 个元素");
objArray.add(2,"第 2 个元素");
System.out.println("数组删除元素前:"+objArray);
objArray.remove(1);
objArray.remove("第 0 个元素");
System.out.println("数组删除元素后:"+objArray);
}
}
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> objArray = new ArrayList<String>();
objArray.clear();
objArray.add(0,"第 0 个元素");
objArray.add(1,"第 1 个元素");
objArray.add(2,"第 2 个元素");
System.out.println("数组删除元素前:"+objArray);
objArray.remove(1);
objArray.remove("第 0 个元素");
System.out.println("数组删除元素后:"+objArray);
}
}
以上代码运行输出结果为:
数组删除元素前:[第 0 个元素, 第 1 个元素, 第 2 个元素]
数组删除元素后:[第 2 个元素]