2016-04-04 10 views
0

Ich habe eine Arraylist und ich möchte für einen bestimmten Artikel suchen und eine Aktion auf es wie so ausführen:Wie überprüft man, ob Element in einer ArrayList in Java gefunden wurde?

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.");} 

         } 


} 

Es funktioniert gut, aber ich brauche eine Erklärung für den Fall hinzufügen von nicht-ID es angepasst werden Drucken Sie "nicht gefunden" oder etwas. irgendeine Hilfe?

+7

eine boolesche Variable auf true gesetzt, wenn Sie den Artikel zu finden. Wenn die boolesche Variable nicht auf "true" gesetzt wurde, wird nach der Schleife "nicht gefunden" gedruckt. – khelwood

+3

Wenn Sie eine Liste nach Index iterieren und Elemente entfernen, führen Sie eine umgekehrte Iteration durch. Andernfalls überspringen Sie den Gegenstand nach einem Spiel. Aber es ist besser, einen 'Iterator' und die' Iterator.remove' Methode zu verwenden. –

+0

möglich duplizieren, Frage bereits beantwortet [hier] (http://stackoverflow.com/questions/10714233/remove-item-from-arraylist) – faizanjehangir

Antwort

1

Um zu zeigen, was khelwood bedeutet:

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!"); 
    } 
} 
Verwandte Themen