Как создать пустой набор массивов, заполнить его пользовательским вводом и распечатать?

1

Вот мой код для заполнения пустого массива:

package duplicate.terminator;
import java.util.Arrays;
import java.util.Scanner;
public class DuplicateTerminator {
       public static void main(String args []){

           Scanner number = new Scanner(System.in);
           int a, num;
           int[] integerset = null;

                System.out.println("Enter Number: ");
                num = number.nextInt();
                Arrays.fill(integerset, num);

       }

}

Это мой код, потому что я хочу получить этот вывод. Мне нужно убрать входные числа в массиве и распечатать его так.

Sample Input/Output:
    Enter number: 5
    5
    Enter number: 9
    5 9
    Enter number: 2
    5 9 2
    Enter number: 9
    9 has already been entered
    5 9 2
    Enter number: 1
    5 9 2 1
  • 4
    Вы можете вместо этого использовать LinkedHashSet
  • 0
    Можете ли вы поделиться кодом, представляющим ваши попытки дедупликации до сих пор?
Показать ещё 2 комментария
Теги:
arrays

2 ответа

3

Я бы предложил использовать LinkedHashSet

потому как

  • вы не знаете, сколько элементов в вашем контейнере данных изначально
  • вам не нужны дубликаты, и вы не хотите поочередно проверять, есть ли дубликат
  • вы хотите сохранить заказ

Вот пример:

Set<Integer> numbers = new LinkedHashSet<>();

while(/*some logic to exit on special input*/) {
   if(!numbers.add(userInputNum){
     // number was already present
   }
}
0

Если вы не хотите использовать LinkedHashSet или метод fill в массиве, это альтернативный способ сделать это.

public static void main(String[] args) 
{
    Scanner scan = new Scanner(System.in);
    int i, j;
    int[] list = new int[10];
    for (i = 0; i <= 9; i++)
    {
        System.out.println("Enter a number :");
        list[i] = scan.nextInt();
        for (j = 0; j < i; j++)
        {
            if (list[j] == list[i])
            {
                System.out.println(list[j] + " has already been entered");
                i--;
            }
        }
        for(j = 0; j <= i; j++)
        {
            System.out.print(list[j] + " ");
        }
        System.out.println();

    }
}
  • 0
    да, ваш код работает, но он печатает Введите число: 5 5 Введите число: 6 5 6 Введите число: 7 5 6 7 Введите число: 8 5 6 7 8 Введите число: 5 5 6 7 8 5 5 имеет уже был введен
  • 0
    Я обновил ответ, вы должны посмотреть его
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню