PDA

View Full Version : [JAVA] Rimuovere elementi arraylist


cerza
24-05-2016, 09:04
Salve,
ho un ArrayList e vorrei, mentre lo scorro, eliminare alcuni elementi che rispettano uno specifico controllo, come potrei fare ciņ? devo per caso cambiare struttura dati?
Grazie a tutti

Don[ITA]
24-05-2016, 10:03
Per modificare un ArrayList mentre lo stai scorrendo, devi necessariamente passare attraverso gli Iterator se non vuoi incappare in una ConcurrentModificationException:

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(new Integer(1));
list.add(new Integer(2));
list.add(new Integer(3));
for(Iterator<Integer> i = list.iterator(); i.hasNext();) {
Integer num = i.next();
if(num > 2) i.remove();
}

sottovento
24-05-2016, 10:15
Oppure eliminarli dopo, visto che basta una sola riga di codice:

ArrayList<Integer> result = (ArrayList<Integer>)vect.stream().filter(i -> i<=2).collect(Collectors.toList());

cerza
01-06-2016, 16:37
Grazie per i vostri suggerimenti :)