2016-04-04 3 views
0

У меня есть ArrayList, и я хочу, чтобы выполнить поиск конкретного элемента и выполнить действие на него так:Как проверить, был ли элемент найден в ArrayList в Java?

System.out.print("What is the ID of the shop that you want to delete?"); 
       int removedShopID= Integer.parseInt(in.next()); 

     for(int i=0; i<shops.size(); i++){ 
       if(shops.get(i).getID()==removedShopID) 
       { shops.remove(i); 
    System.out.println("The shop has been successfully deleted.");} 

         } 


} 

Это работает хорошо, но мне нужно добавить заявление, в случае отсутствия ID не найден он будет печать «не найдена» или что-то в этом роде. любая помощь?

+7

Установите логическую переменную в верно, когда вы находите деталь. После цикла, если для переменной boolean не установлено значение true, напечатайте «not found». – khelwood

+3

Если вы повторяете список по индексу и удаляете элементы, итерации в обратном порядке. В противном случае вы пропустите элемент после матча. Но лучше использовать метод 'Iterator' и' Iterator.remove'. –

+0

Возможный дубликат, вопрос уже ответил [здесь] (http://stackoverflow.com/questions/10714233/remove-item-from-arraylist) – faizanjehangir

ответ

1

Чтобы показать, что khelwood средства:

public static void main(String[] args) { 

    List<Shop> shops = new LinkedList<Shop>(); 

    System.out.print("What is the ID of the shop that you want to delete?"); 
    Scanner scanner = new Scanner(System.in); 
    int removedShopID = scanner.nextInt(); 

    boolean isFound = false; 
    for (int i = 0; i < shops.size(); i++) { 
     if (shops.get(i).getID() == removedShopID) { 
      shops.remove(i); 
      isFound = true; 
      System.out.println("The shop has been successfully deleted."); 
     } 
    } 
    if (!isFound) { 
     System.out.println("Not found!"); 
    } 
} 
Смежные вопросы