No se puede eliminar de un ArrayList [cerrado]

 import java.util;  
 class Driver{

 public static void main(String[] args) {
      ArrayList<String> lstStr = new ArrayList<String>();
      lsstStr.add("A");
      lsstStr.add("B");
      lsstStr.add("C");
      for(Iterator<String> it = lstStr.Iterator(); it.hasNext();)
      {
          str = it.next();
          if(str.equals("B")){lstStr.remove(str);}
      }
      for(Iterator<String> it = lstStr.Iterator(); it.hasNext();)
      {
        System.out.println(it.next());
      }
 }
 }

Esto no está eliminando "B" de la lista. ¿Por qué Str no es igual a "B" cuando el bucle se ejecuta por segunda vez? ¿Por qué?

Respuestas a la pregunta(3)

Su respuesta a la pregunta