使用 Apache Commons Lang

要轻松删除元素,我们可以使用 Apache Commons Lang 库,尤其是 ArrayUtils 类的静态方法 removeElement()。
下面是一个例子:

int[] array = new int[]{1,2,3,4};
array = ArrayUtils.removeElement(array, 2); //删除第一个值为2的元素
System.out.println(Arrays.toString(array)); //[1, 3, 4]

使用 ArrayList

我们可以将数组转换为 java.util.List,删除元素并将列表转换回数组,如下所示:

String[] array = new String[]{"foo", "bar", "baz"};
List list = new ArrayList<>(Arrays.asList(array));
list.remove("foo");

//创建与列表大小相同的新数组,并将列表元素复制到该数组中。
//
array = list.toArray(new String[list.size()]);
System.out.println(Arrays.toString(array)); //[bar, baz]

使用 System.arraycopy

System.arraycopy() 可用于制作原始数组的副本并删除我们想要的元素。
下面是一个例子:

int[] array = new int[] { 1, 2, 3, 4 }; //Oroirnal array.
int[] result = new int[array.length - 1]; //将包含结果的数组。
int index = 1; //删除元素 "2".
//复制索引左侧的元素。
System.arraycopy(array, 0, result, 0, index);
//复制索引右侧的元素。
System.arraycopy(array, index + 1, result, index, array.length - index - 1);
System.out.println(Arrays.toString(result)); //[1, 3, 4]
Java如何删除数组中的元素

Java 没有在 java.util.Arrays 中提供直接方法来从数组中删除元素。
要执行它,我们可以将原始数组复制到一个没有要删除元素的新数组,或者将数组转换为允许删除的另一种结构。

日期:2020-06-02 22:15:23 来源:oir作者:oir