- Создание массива с использованием ArrayList и присвоение ему имени (например, «input_numbers»)
ArrayList<Integer> entered_numbers = new ArrayList<Integer>();
2. Каждый раз, когда пользователь вводит число, проверьте с помощью contains()
, есть ли номер в ArrayList.
Если это так, отобразите ваше сообщение (не number_of_guesses++
)
Если это не так, добавьте его с помощью add()
и продолжайте свои собственные проверки.
if(entered_numbers.contains(user_guess)) {
System.out.println("You have already entered this number");
continue;
} else {
entered_numbers.add(user_guess);
// Check if == secret number,
// Check if < secret number,
// Check if > secret number
}
Другие предложили использовать HashSets
, что лучше для производительности.
Сложность с использованием ArrayList - O (n), а HashSet - O (1).
Я выбрал более простой подход с использованием ArrayList, и он не слишком сильно влияет на производительность, потому что вы не собираетесь хранить много данных внутри этого ArrayList.
Подробнее о сложности здесь: https://www.baeldung.com/java-collections-complexity