Java程序从数组中删除元素
时间:2020-02-23 14:34:38 来源:igfitidea点击:
在本教程中,我们将看到如何从Java中删除来自数组的元素。
与ArrayList不同,Java arrays类没有提供添加或者删除元素的任何直接方法。
随着阵列固定的大小,我们无法动态缩小或者延长它。
我们需要创建新数组并复制除了要删除的元素之外的所有元素。
如果我们在数组中没有重复,则可以简单地使用Apache Common的ArrayUtil类。
它具有可移开的方法,该方法从数组中删除元素的第一次出现并返回新数组。
使用内置的函数删除数组中的元素
我们还可以使用Apache Common的ArrayUtils.RemoveElement(array,元素)方法从数组中删除元素。
它将删除array中的第一个元素。
它是清洁和优雅的方式来从数组中删除任何元素。
第1步:创建一个简单的Java Maven项目。
步骤2:将Apache常见依赖添加到POM.xml。
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.0</version> </dependency>
第3步:创建一个名为"demomenelementapachecommonmain"的类
package org.igi.theitroad; import org.apache.commons.lang3.ArrayUtils; public class RemoveElementApacheCommonMain { public static void main(String[] args) { System.out.println("Before removing element"); int arr[]={1,34,2,23,35,65}; for (int i = 0; i < arr.length; i++) { System.out.print(" "+arr[i]); } System.out.println(); System.out.println("============"); System.out.println("After removing element 23"); //Remove element using Apache common ArrayUtils arr=ArrayUtils.removeElement(arr,23); for (int i = 0; i < arr.length; i++) { System.out.print(" "+arr[i]); } } }
运行上面的程序时,我们将得到以下输出:
Before removing element 1 34 2 23 35 65 ============ After removing element 23 1 34 2 35 65
不是有内置函数,删除数组中的元素
我们可以给出一个数组和元素。
我们需要删除数组中元素的所有出现并返回其新长度。
我们不应该使用任何另外的空间,而没有内在的函数
如果不允许使用任何内置函数,可以使用以下算法。
- 让我们说你的数组是arr []和length = 0
- 迭代数组,如果元素等于ARR [I],请跳过迭代(如我们需要删除元素)否则递增长度并分配当前元素。
- 当我到达上次元素时,我们将获得newLength,将删除所有元素实例。
让我们在简单的程序的帮助下看看。
创建名为"devoremeLementmain"的类。
package org.igi.theitroad; public class RemoveElementMain { public static void main(String[] args) { System.out.println("Before removing element"); int arr[]={1,34,23,2,23,35,65}; for (int i = 0; i < arr.length; i++) { System.out.print(" "+arr[i]); } System.out.println(); System.out.println("============"); System.out.println("After removing element 23"); int newLength=removeElement(arr,23); for (int i = 0; i < newLength; i++) { System.out.print(" "+arr[i]); } } public static int removeElement(int[] arr,int element) { int length=0; for (int i = 0; i < arr.length; i++) { if(arr[i]!=element) { arr[length++]=arr[i]; } } return length; } }
运行上面的程序时,我们将得到以下输出:
Before removing element 1 34 23 2 23 35 65 ============ After removing element 23 1 34 2 35 65