У меня есть следующий метод в моей программе, который позволяет пользователю вводить уникальный идентификатор, связанный с ноутбуком в ArrayList.
Требуемый вывод выглядит следующим образом:
- Если идентификатор, введенный пользователем, совпадает с идентификатором в ArrayList, ноутбук и его спецификации будут распечатаны.
- Если идентификатор не совпадает, он напечатает «Неверный идентификатор».
Я очень близок к достижению этого; однако я могу только выяснить, как заставить это печатать, соответствует ли это для каждого ноутбука в списке. Так, например, если идентификатор, введенный пользователем, соответствует одному из трех ноутбуков в списке, он напечатает следующим образом:
Acer Predator Hel ios 300 Процессор: Intel i7-9750h Графический процессор: NVIDIA GTX1660ti Память: 16GB ID: 1234567
Неверный идентификатор.
Неверный идентификатор.
Поэтому мой вопрос: как мне заставить его печатать ТОЛЬКО одиночное совпадение или "Неверный идентификатор", пока все еще в состоянии l oop через весь список, чтобы проверить на совпадение? Не обязательно просить вас накормить меня ложкой, но хотя бы помогите направить меня в правильном направлении или помогите с логи c. Заранее благодарю за любую помощь!
Мой метод следующий:
private static void findLaptop(ArrayList arr) {
//Prompt user to input an ID.
System.out.println("Input ID: ");
System.out.println();
//Scan for user input.
Scanner keyboard = new Scanner(System.in);
int inputId = keyboard.nextInt();
//Loop through ArrayList and check for a match.
for(int i=0; i<arr.size(); i++) {
//If entered ID matches, print laptop information.
if(inputId == ((Laptops) arr.get(i)).getId()) {
System.out.println(((Laptops)arr.get(i)).getModel() + " CPU: " + ((Laptops)arr.get(i)).getCpu() + " GPU: " +
((Laptops)arr.get(i)).getGpu() + " Memory: " + ((Laptops)arr.get(i)).getMemory() + "GB ID: " +
((Laptops)arr.get(i)).getId());
}
//If entered ID does not match, print invalid ID.
else if(inputId != ((Laptops) arr.get(i)).getId()) {
System.out.println("Invalid ID.");
}
}
}