
Originariamente inviata da
francesco.muia
Scorri la lista tramite un java.util.Iterator e su questo ultimo chiame il remove appena si verifica la condizione che ti interessa
si grazie del consiglio, ci sono riuscito. ^_^
ho un altro problema...non capisco perchè il metodo isEmpty() mi segnala errore. Ti scrivo il codice.
Questo è un metodo di una classe:
codice:
private ArrayList<rispLista> cercaMessaggio(String id, Utente u) { System.out.println("--------cerca messaggio--------");
ArrayList<rispLista> nM=new ArrayList<rispLista>();
ArrayList<rispLista> nM2=new ArrayList<rispLista>();
invioMessaggio iM = new invioMessaggio(u.getidUtente(), listaM);
nM=iM.vediMessaggi(u);
System.out.println("----vedi M-------");
if(!nM.isEmpty()){
System.out.println("entra");
Iterator<rispLista> itM1=nM.iterator();
while(itM1.hasNext()){
rispLista rp=itM1.next();
if(rp.getId_mes().equals(id)){
nM2.add(rp);
}
}
System.out.println("------fine M-----");
}else nM2=null;
System.out.println("---------fine mex--------");
return nM2;
}
Mentre nel main faccio dei controlli...
codice:
idU = cercaUtente(richiesta.getIdUtente()); if(idU!=null){
nM=cercaMessaggio(richiesta.getIdMessaggio(),idU);
System.out.println("prova isEMPITY nM"+!nM.isEmpty());
if(!nM.isEmpty()){System.out
.println("-------Visualizza lista nM----------");
Iterator<rispLista> itR=nM.iterator();
while(itR.hasNext()){
rispLista rrr=itR.next();
}
System.out.println("-----fine lista nM-------");
}else{
risposta = new Risposta("HTTP/1.0", "400", "ERROR",
"Messaggio " + richiesta.getIdMessaggio()
+ " non esiste");
}
}
Quando l'array nM è null mi segnala un errore all'istruzione if(!nM.isEmpty()), mentre dovrebbe entrare nell'else
"Exception in thread "pool-1-thread-2" java.lang.NullPointerException"<----ERRORE