我有一个有2个点的数组(它在开始时必须有2个点)。我需要获得用户输入,并且当用户输入的数组超过数组可以容纳的时候,将数组加倍。同样在输入-1时,用户输入应该停止。该数组还必须不接受重复项。如何操作数组?
我不知道如何让不接受重复项,并在用户进入-1时结束程序,同时在每次填满时仍然使数组加倍。
这是我到目前为止,但它的缺陷,并不会正常运行。
public class GroupArrays {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
int [] numbers = new int[2];
int x;
int n=0;
for(int i = 0; i<numbers.length; i++){
System.out.println("Please enter number");
int number = input.nextInt();
while (input.hasNextInt())
{
x = input.nextInt();
if (n == numbers.length)
{
int[] h;
h = new int[ 2*numbers.length ];
for (int i1 = 0; i1 < numbers.length; i1++)
h[i1] = numbers[i1];
numbers = h;
}
if(x == -1){
break;
}
numbers[n] = x;
n++;
}
for (int i1 = 0; i1 < numbers.length; i1++)
System.out.println(numbers[i1]);
}
}
我可以计算出如何单独做的所有事情,但是当我要他们都做1个阵列,做用户输入变得困难。 PS。我觉得我已经让这个过程变得比需要的复杂。
感谢您的帮助。我应该先在纸上开始psudocoding。我有一个问题,因为我打字,通常我错了。 –
这就是为什么将它分成小而简单的部分是非常重要的。这些更容易理解,实施和测试。如果你搞砸了,他们更容易修改。一旦你有好的简单构建块,组装它们变得更容易。 –