使用 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.util.Arrays 中提供直接方法来从数组中删除元素。
要执行它,我们可以将原始数组复制到一个没有要删除元素的新数组,或者将数组转换为允许删除的另一种结构。
日期:2020-06-02 22:15:23 来源:oir作者:oir