скажем, у нас есть аа класс Карандаш, который имеет два атрибута, как это:удалить объект из списка
public class Pencil {
String color;
int length;
public Pencil(String c, int sh, int l) {
this.color = c;
this.length = l;
}
public String getColor() {
return color;
}
}
затем положить объект 4 карандаша в коробке:
public class Box {
ArrayList<Pencil> list;
public Box() {
list = new ArrayList<Pencil>();
list.add(new Pencil("blue", 5, 10));
list.add(new Pencil("black", 5, 10));
list.add(new Pencil("brown", 5, 10));
list.add(new Pencil("orange", 5, 10));
}
}
, а затем мы чтобы удалить один из этих объектов из списка на основе стоимости color
:
public class TestDrive {
public static void main(String[] args) {
Box b = new Box();
ArrayList box = b.list;
Iterator it = box.iterator();
while(it.hasNext()) {
Pencil p = (Pencil) it.next();
if (p.getColor() == "black") {
box.remove(p);
}
}
}
}
кажется довольно ес'и ghtforward, но я получаю Exception in thread "main" java.util.ConcurrentModificationException
. Я был бы признателен, если бы кто-нибудь мог сказать, что мне здесь не хватает
Там же несколько вопросов здесь ... и чтобы отразить любые потенциальные боян-доводчик, он не чувствует, как он вписывается в «сравнить строки» или «одновременно модификация» вопросы. – Makoto
Посмотрите на это: http://stackoverflow.com/questions/8189466/java-util-concurrentmodificationexception –
@chrylis: Вопрос, заданный в связанном дубликате, имеет иной характер, чем тот, который здесь задан. Я не чувствую, что это дублирующий вопрос. – Makoto