我正在尝试编写代码。在那里我将从用户那里获得最多 1000 个(整数)输入(它必须是数组[1000])并且它会按照写入时的相同顺序打印出整数。
如果用户需要,可以通过 ctrl+z 停止阅读。该程序不会写出重复的数字。
例子;
输入:45 77 -22 3 45 0 21 -1 3 输出:45 77 -22 3 0 21 -1
到目前为止我已经编码(2 天内):
static int i = 0;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] array = new int[1000];
int[] arrayCopy = new int[1000];
int k=0,j=0;
System.out.println("enter your integer numbers");
while(input.hasNext())
{
array[i] = input.nextInt();
for(j =0 ; j< array.length; j++)
{
arrayCopy[j] = array[j];
}
for( k =1; k<arrayCopy.length; k++)
{
int aV = arrayCopy[k];
}
i++;
}
input.close();
}
}
最佳答案
使用 HashMap 来跟踪已经看到的数字。如果它是一个新数字,则仅将其添加到您的输出字符串中。您可以使用以下内容修改您的代码:
int[] array = new int[1000];
Scanner input = new Scanner(System.in);
int index = 0;
while(input.hasNext()) {
array[index] = input.nextInt();
index++;
}
HashMap<Integer, Boolean> seenNumbers = new HashMap<Integer, Boolean>();
String result = "";
for (int i = 0; i < index; i++) {
int value = array[i];
if (!seenNumbers.containsKey(value)) {
result += " " + value;
seenNumbers.put(value, true);
}
}
System.out.println(result);
关于java - 如何检查重复的数字并按照读取的相同顺序打印出读取的输入数字(不包括所有重复项。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37147390/