java中如何删除数组中的元素
删除数组中的元素的方法
在Java中,数组的长度是固定的,无法直接删除元素。需要通过创建新数组、使用集合类或第三方库等方法实现元素删除。以下是几种常见方法:
使用System.arraycopy方法
创建一个新数组,长度比原数组小1,通过复制原数组中不需要删除的元素到新数组实现删除效果:

int[] originalArray = {1, 2, 3, 4, 5};
int indexToRemove = 2; // 要删除元素的索引
int[] newArray = new int[originalArray.length - 1];
System.arraycopy(originalArray, 0, newArray, 0, indexToRemove);
System.arraycopy(originalArray, indexToRemove + 1, newArray, indexToRemove, originalArray.length - indexToRemove - 1);
使用ArrayList转换
将数组转换为ArrayList,利用其remove方法删除元素,再转换回数组:

Integer[] array = {1, 2, 3, 4, 5};
List<Integer> list = new ArrayList<>(Arrays.asList(array));
list.remove(2); // 删除索引为2的元素
array = list.toArray(new Integer[0]);
使用Apache Commons Lang库
ArrayUtils类提供了removeElement方法:
int[] array = {1, 2, 3, 4, 5};
int[] newArray = ArrayUtils.removeElement(array, 3); // 删除值为3的元素
使用Java 8 Stream API
通过过滤流的方式创建不包含指定元素的新数组:
int[] array = {1, 2, 3, 4, 5};
int elementToRemove = 3;
int[] newArray = Arrays.stream(array)
.filter(i -> i != elementToRemove)
.toArray();
注意事项
- 基本类型数组与对象数组处理方法不同
- 删除操作会改变数组长度
- 考虑性能因素,大数据量时System.arraycopy效率较高
- 多次删除操作建议使用ArrayList等动态集合






