Não é possível remover de uma ArrayList [closed]

 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());
      }
 }
 }

Isso não está removendo "B" da lista. Por que Str não é igual a "B" quando o loop é executado na segunda vez. Por que?

questionAnswers(3)

yourAnswerToTheQuestion