04-20.eri-test 如何使用Java从阵列中删除重复项

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值