Ciao ragazzi, nel mio codice ho notato che ArrayList non scorre tutti gli elementi.
vi riporto il codice dove è segnalato l'errore
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.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; }
nelle prime righe dove ho scritto
non rilevo nessu errore e i campi restituiti sono corretti.codice:m=listaMessaggi.get(0); m1=listaMessaggi.get(1); System.out.println("m " + m.getTesto() + " m1 " + m1.getTesto());
potete aiutarmi?
grazie

Rispondi quotando