消除java中的重复数据
我对java中的这个问题印象深刻,这就是我到目前为止所做的 计算机科学中的一个常见问题是消除重复数据。编写一个程序,要求用户输入一个介于1和100之间的数字(如果不是,请他们再试一次)消除java中的重复数据,java,arrays,Java,Arrays,我对java中的这个问题印象深刻,这就是我到目前为止所做的 计算机科学中的一个常见问题是消除重复数据。编写一个程序,要求用户输入一个介于1和100之间的数字(如果不是,请他们再试一次) 接下来,如果输入的数字*以前从未输入过,请使用数组跟踪它 如果以前输入过该号码,请通知用户并询问其他号码 您的程序应该循环,直到用户输入了10个唯一的数字,然后显示10个数字的列表 使用10个元素的数组来解决此问题 import java.util.Scanner; 公共类重复2_4_4{ 公共静态void
- 接下来,如果输入的数字*以前从未输入过,请使用数组跟踪它
- 如果以前输入过该号码,请通知用户并询问其他号码
- 您的程序应该循环,直到用户输入了10个唯一的数字,然后显示10个数字的列表
- 使用10个元素的数组来解决此问题
import java.util.Scanner;
公共类重复2_4_4{
公共静态void main(字符串[]args){
//创建上一个变量
int-previous=0;
//创建一个数组
纽马拉国际酒店[]=新国际酒店[10];
扫描仪键盘=新扫描仪(System.in);
System.out.println(“请输入1到100之间的10个唯一数字”);
numArray[previous]=keyboard.nextInt();
如果(努马拉[先前]<1 | |努马拉[先前]>100)
System.out.println(“请输入一个介于1到100之间的数字,再试一次”);
for(int present=0;present100)
System.out.println(“请输入一个介于1到100之间的数字,再试一次”);
numArray[previous]=keyboard.nextInt();
//跟踪用户输入
对于(int present1=0;numArray[present1]==numArray[previous];present1++){
System.out.println(“请输入一个唯一的号码,再试一次”);
}
}
}
}
我们可以很容易地为您编写这篇文章,但这最终无助于您学习编程。。。我想这就是你做这个练习的原因
因此,我只给你一些提示
最后,值得注意的是,有很多方法可以解决这个问题。一旦你找到了一个有效的解决方案。。。你明白这个解决方案。。。也许值得考虑是否有一种更简单/更“优雅”的方法来做这件事。您可以通过散列技术来做
int index[]=new int[101];
int numArray[] = new int[10];
int i=0;
while(i<10)
{
int temp=keyboard.nextInt();
if(index[temp]==0)
{
index[temp]=1;
numArray[i++]=temp;
}
else System.out.println("This Number is already entered");
}
int index[]=newint[101];
纽马拉国际酒店[]=新国际酒店[10];
int i=0;
while(iHi,欢迎使用Stack Overflow。您的问题是什么?另外,请正确设置代码和问题的格式;在原始状态下阅读它非常困难。为什么不为此使用Set,如果用户输入重复值,则添加()方法将返回false@siso-因为这是一个初学者编程练习…老师显然想让学生学习使用数组。@StephenC…而不是让其他人思考/学习数组them@Bohemian-没错!这不是“散列”…这就像散列法意味着我们将一个整数转换为索引,并在O(1)中检索它的值。不。这不是散列法的意思。散列法是将一些值转换为整数。@StephenC请看这一点,读第二行。“类散列法”不是散列法。这是作者的简写方式“这有点像一个哈希表,但它不是真的”。阅读本页了解什么是哈希。
int index[]=new int[101];
int numArray[] = new int[10];
int i=0;
while(i<10)
{
int temp=keyboard.nextInt();
if(index[temp]==0)
{
index[temp]=1;
numArray[i++]=temp;
}
else System.out.println("This Number is already entered");
}