Ciao ragazzi, nel mio codice ho notato che ArrayList non scorre tutti gli elementi.

vi riporto il codice dove è segnalato l'errore

codice:
public ArrayList<rispLista> vediMessaggi(Utente idU) {        
        System.out
                .println("--------INIZIA CLASSE INVIA MESSAGGI METODO VEDI MESSAGGIO ");
        Messaggio m=new Messaggio();
        Messaggio m1=new Messaggio();
        m=listaMessaggi.get(0);
        m1=listaMessaggi.get(1);

    System.out.println("m " + m.getTesto() + " m1 " + m1.getTesto());
        ArrayList<rispLista> vediMex=new ArrayList<rispLista>();
        int secondi=0;
        String orarioSistema,orarioScadenzaMessaggio;
        
        for (int i = 0; i <listaMessaggi.size()&&!listaMessaggi.isEmpty(); i++) {
            System.out.println("for con i= " + i+ " g "+g);
            m=null;
            m=listaMessaggi.get(i);

            System.out.println("idUtente del mex " + m.getIdMes()
                    + " id utente " + idU.getidUtente()+" utente messaggio "+m.getIdUtente());
            if(m.getIdUtente().equals(idU.getidUtente())){
                orarioSistema=getDataOdierna()+" "+getOraAttuale();
                orarioScadenzaMessaggio=m.getData()+" "+m.getOrario();
                System.out.println("Orario Sistem " + orarioSistema
                        + " orario Scadenza Messaggio "
                        + orarioScadenzaMessaggio);
                secondi=diffDataOrario(orarioScadenzaMessaggio, orarioSistema, m.getDurata());
                System.out.println("i secondi sono " + secondi);
                if(secondi>=0){
                    
                        listaMessaggi.remove(m);
                        System.out.println("messaggio rimosso");
                        
                    
                }else{
                    rispLista rL=new rispLista(m.getIdMes(), m.getIdAmico(), m.getTesto(), (-1)*secondi);
                    vediMex.add(rL);
                }
                
            }
            
            
        }
        
        
        return vediMex;
        
    }
ho inserito delle println per capire come mai, ma non ci sono riuscito. L'unica cosa che ho notato è che la i del for si ferma a 0 nonostante la dimensione dell'ArrayList è uguale a 2.

nelle prime righe dove ho scritto

codice:
m=listaMessaggi.get(0);        m1=listaMessaggi.get(1);
    
    System.out.println("m " + m.getTesto() + " m1 " + m1.getTesto());
non rilevo nessu errore e i campi restituiti sono corretti.

potete aiutarmi?

grazie