Я пишу этот код, который выполняет итерацию по arrayylist, и если найдено имя, равное getName, он напечатает его, а если не найден, напечатает «сообщение». Моя проблема с этим кодом:
Если у человека такой же номер, как у другого, программа остановится при первом совпадении из-за перерыва; как я могу это исправить?
import java.util.*;
public class AggPersone {
public static void main(String[] args) {
ArrayList<Item> voce = new ArrayList<Item>();
voce.add(new Item("Robert", "Via qualcosa", "123"));
voce.add(new Item("Roberto","Via qualcosina", "123"));
voce.add(new Item("Robert", "Via qual ", "2222"));
Scanner input = new Scanner(System.in);
System.out.println("chi cerchi?");
String chiave = input.nextLine();
int i = 0;
while(i < voce.size()){
if(voce.get(i).getNome().equals(chiave)){
System.out.println(voce.get(i).toString());
break;
}
i++;
if(i == voce.size()){
System.out.println("Nessun match");
}
}
input.close();
}
}
0
Uruma
24 Июн 2016 в 16:22
1
Удалите оператор break в вашем цикле, он распечатает их все ...
– StackFlowed
24 Июн 2016 в 16:25
1
@StackFlowed: Но вы не обнаружите, если ничего не было найдено.
– Frank Puffer
24 Июн 2016 в 16:32
1 ответ
Лучший ответ
Используйте логическую переменную, чтобы отметить, найдено ли имя:
boolean found = false;
for (Item item : voce) {
if(item.getNome().equals(chiave)){
System.out.println(item.toString());
found = true;
}
}
if (!found) {
System.out.println("Nessun match");
}
0
Frank Puffer
24 Июн 2016 в 16:27
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.