2016-06-21 5 views
0

Ich habe einen Code mit Listen geschrieben. Aber obwohl ich remove() Methode verwendet, zeigt die Ausgabe alle Wörter ohne zu löschen an. Was soll ich tun, um zu überwinden?Ein Programm mit Iterator zum Entfernen der Einträge

import java.util.*; 
public class ListExample1 { 

public static void main(String[] args) { 

    List<String> strList = new ArrayList<String>(); 
    //add data into list 
    strList.add("ask"); 
    strList.add("rule"); 
    strList.add("left"); 
    strList.add("right"); 
    strList.add("fight"); 
    strList.add("fish"); 
    strList.add("ask"); 


    //read the data 
    for(String str : strList){ 
     System.out.println(str); 
    } 
    System.out.println("--------------------------"); 
    Iterator<String> iteratorRef = strList.iterator(); 

    while(iteratorRef.hasNext()){ 
     String str = iteratorRef.next(); 
     System.out.println(str); 
     if(str.equals("ask")){ 
      iteratorRef.remove(); 
     } 
    } 
+6

Sie drucken den Eintrag, bevor Sie ihn löschen. Warum sollten Sie erwarten, dass der gelöschte Eintrag nicht angezeigt wird? –

Antwort

0

Sie drucken jeden String bedingungslos in der while-Schleife. Ist das was du willst?

+0

danke. arbeitete – nitin

2

Sie haben nach der remove-Methode keine print-Anweisung geschrieben, so dass Sie das Ergebnis nicht sehen können. Fügen Sie einfach die Druckmethode hinzu

System.out.println("ArrayList after removal : "); 
    for(int i=0; i< strList.size(); i++) 
     System.out.println(strList.get(i)); 
} 
+0

oder \t \t für (String string: strlist) { \t \t \t System.out.printin (string); \t \t} – user3136131