Removendo objeto de um ArrayList

Bom dia gente.

To precisando percorrer um ArrayList para verificar se uma data é menor ou maior que a data atual. Se for maior gostaria de remover o objeto atual da lista.

Assim dá erro:

	public ArrayList<PermPNR> listaPNROcupVencida() {
		Session sessao = HibernateUtil.getSession();
		ArrayList<PermPNR> ocupacaoVencida = new ArrayList<PermPNR>();
		Date dataAtual = new Date();
		DateFormat df = DateFormat.getDateInstance();
		
		try {
			String sql = "FROM PermPNR where dtLimiteOcupacao <> null and dtOcupacao = null and pnr.pnrSituacao in (5,6) order by dtLimiteOcupacao";
			Query query = sessao.createQuery(sql);
			ocupacaoVencida = (ArrayList<PermPNR>) query.list();
			
			for(PermPNR p : ocupacaoVencida) {
					int var = df.format(p.getDtLimiteOcupacao()).compareTo(df.format(dataAtual));
					if(var < 0) {
						ocupacaoVencida.remove(p);
					}
				}
			
			return ocupacaoVencida;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

Aguardo ajuda!

Obrigado

Você não pode remover um elemento de um ArrayList usando o “foreach”. Você tem de usar o iterador, e “remove”. Exemplo:

import java.util.*;

class TesteRemove {
    public static void main(String[] args) {
        Set&lt;Integer&gt; dadosARemover = new TreeSet&lt;Integer&gt;();
        dadosARemover.add (1); dadosARemover.add (4); dadosARemover.add (7);
        System.out.println ("Dados A Remover = " + dadosARemover);
        List&lt;Integer&gt; dadosAFiltrar = new ArrayList&lt;Integer&gt;();
        dadosAFiltrar.add (1); dadosAFiltrar.add (2); dadosAFiltrar.add (3); dadosAFiltrar.add (4);
        dadosAFiltrar.add (5); dadosAFiltrar.add (6); dadosAFiltrar.add (7); dadosAFiltrar.add (8);
        System.out.println ("Dados A Filtrar = " + dadosAFiltrar);
        for (Iterator&lt;Integer&gt; it = dadosAFiltrar.iterator(); it.hasNext(); ) {
            Integer n = it.next();
            if (dadosARemover.contains (n)) {
                it.remove ();
            }
        }
        System.out.println ("Dados Filtrados = " + dadosAFiltrar);
    }
}

Ok! Muito obrigado!