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