Problem: 如何从数组中删除重复的元素
Solution:
内容:
1: 建立档案& Declare a Class
2:声明主要方法
3:声明变量
4:接受输入
5:将输入传递给第二种方法
6:声明包含我们逻辑的第二种方法
7:从数组中删除重复项的实际逻辑
8:返回纯数组
9:显示输出
注意:我在此解决方案中遵循Java命名约定。
它不是必须遵循的,但是作为程序员,这是一个好习惯。
它将使您的程序易于其他程序员阅读。
1。 Create a file & Declare a Class
Create a file EliminateDuplicatesFromArray.Ĵava
打开文件并声明类
import java.util.Scanner;
class EliminateDuplicatesFromArray{
}
根据Java约定,文件名和类名必须相同,这使得维护和组织程序更加容易。
我们正在导入Scanner类以接受输入
2 : 声明主要方法
public 静态的 void main(String as[]){
}
这是任何Java程序的启动方法
3 : 在主要方法中声明变量
现在声明程序中需要的必要变量。
- 两个数组,一个用于输入,另一个用于输出
int[] 清单,pureList;
- 数组大小
int len;
- Scanner类的对象
Scanner s=new Scanner(System.in);
这将要求我们是否使用动态初始化
4 : 接受输入
输入/初始化数组的两种方法
- 静态初始化
清单={10,20,30,30,30,30,40,50,10,40,10,50,10,0,0,0,10,70,80,10,90,10,90,90,90};
- 动态初始化 为此,我们需要接受用户的输入。 因此,我们需要一个Scanner类的对象来获取步骤3中声明的输入。
System.out.println("Enter Size of array");
int len=s.nextInt();
清单=new int[len]; // instantiation
for(int i=0;i<清单.length;i++)
{
System.out.print("Enter "+i+" element :=> ");
list[i]=s.nextInt(); // initialization
}
5 : 将输入传递给第二种方法
pureList=removeDuplicates(list);
通过list
作为方法的输入removeDuplicates
它会返回到pureList
.
6 : 声明第二种方法
创建第二种方法
public static int[] 消除重复(int[] list){
}
为什么static
? 因为我们从main方法调用它。
7 : 从数组中删除重复项的实际逻辑
- 在中声明变量
eliminateDuplicates
方法
int 键,newSize;
int[] pureList;
的键
变量用于选择list
如键
并比较键
与每个元素list
pureList
用于存储纯数组newSize
是的长度pureList
数组
7.1 : 初始化输入
newSize=list.length;
list变量将包含传递的不纯数组
目前,newSize
将包含输入数组的长度(不纯数组)newSize
将随着元素的删除而减少。
7.2 : 处理阵列[实际逻辑]
for(int i=0;i<newSize-1;i++)//for select each element as 键
{
key=list[i];//store first element as 键
for(int j=i+1;j<newSize;j++){/* Start Comparing with Next Element
otherwise key element will be removed */
if(key==list[j])
{
newSize=newSize-1; /* Decreasing Length to Skip the Last
element which already shifted up
after below loop */
for(int k=j;k<newSize;k++)//Shift Up Array to remove Duplicate {
list[k]=list[k+1]; //remove duplicate
}
j--; //for skipped element after deletion
}
}
}
- 第一循环 选择数组的每个元素 分配给
Key
变量 - 第二循环 选择数组后的每个元素
key
元件 - 如果声明 将键与数组的每个元素(不包括)进行比较
key
如果找到匹配项 然后递减newSize
变量 因为在第三循环中,我们从数组中删除了一个元素 - 第三循环 通过向上移动下一个元素从数组中删除一个元素
现在递减第二循环计数器j
删除一个元素是因为删除元素后,下一个元素的索引将成为已删除元素的索引。
因此,不会跳过下一个元素进行比较。
8 : 返回一个纯数组
在这之后list
没有重复值,但包含虚拟值
所以用newSize
长度pureList
数组。
pureList=new int[newSize]; //Instantiate pureList Array with newSize
for(int p=0;p<newSize;p++)
{
pureList[p]=list[p];
}
return pureList;
9 : 显示输出
for(int x: pureList)//for each loop for display output
{
System.out.println(x);
}
Source Code
from: https://dev.to//jsp/remove-duplicates-from-array-2k2d