Я пытаюсь добавить и удалить из массива коллекцию объектов в одном и том же цикле, но разными методами, и моя проблема заключается в том, что после добавления и удаления я пытаюсь напечатать свой список массивов, но не могу получить добавленные значенияотносительно недавно.Я использую ListIterator для добавления и Iterator для удаления, потому что я прочитал на нескольких веб-сайтах, что это единственный способ добавления и удаления, и изменение будет происходить непосредственно в массиве, но моя проблема заключается в том, что он добавляет и удаляети счетчик массивов или ссылочный номер на отладчике выглядят хорошо, но когда я ищу их, я не могу найти новое.добавленный объект, и я все еще нахожу удаленные объекты.это методы удаления и добавления
public void RemoveFromAnimalList(Animal A) {
Iterator<Animal> i = AnimalList.iterator();
while (i.hasNext()) {
if (A == i.next()) {
i.remove();
}
}
}
public boolean AddNewAnimalList(Animal A) {
ListIterator litr = AnimalList.listIterator();
Animal B = null;
while (litr.hasNext()) {
B = (Animal) litr.next();
litr.add(A);
return true;
}
return false;
}
это метод, который вызывает эти методы выше, и я перепробовал все и отлаживал все, и каждый раз я не могу найти новый элемент добавления, хотя номер массива выглядит правильно.у меня 400 объектов, и когда я удаляю, он достигает 399, а затем снова, когда я добавляю его, возвращаюсь к 400, но когда я пытаюсь распечатать и просмотреть объекты, я не могу найти новые.
public void FirstBirth() {
TheXYAxisControl XYSave = null;
int X = 0;
int Y = 0;
for (Animal A : AnimalList) {
if (A.Type.equals("Empty")) {
X = A.XAxis;
Y = A.YAxis;
XYSave = new TheXYAxisControl(X, Y);
TheXYaxisArrayList.add(XYSave);
}
}
Random RandomNumberGen = new Random();
for (int s = 0; s < 3; s++) {
int RandomNumberGenerator = RandomNumberGen.nextInt(TheXYaxisArrayList.size());
Animal NewAnimal = new Animal(0, "Male", 0, TheXYaxisArrayList.get(RandomNumberGenerator).getX(), TheXYaxisArrayList.get(RandomNumberGenerator).getY(), 0);
RemoveFromAnimalList(AnimalList.get(RandomNumberGenerator));
AddNewAnimalList(NewAnimal);
RemoveFromOtherList(TheXYaxisArrayList.get(RandomNumberGenerator));
}
int RandomNumberGenerator = RandomNumberGen.nextInt(TheXYaxisArrayList.size());
Animal NewAnimal = new Animal(0, "Female", 0, TheXYaxisArrayList.get(RandomNumberGenerator).getX(), TheXYaxisArrayList.get(RandomNumberGenerator).getY(), 0);
RemoveFromAnimalList(AnimalList.get(RandomNumberGenerator));
AddNewAnimalList(NewAnimal);
RemoveFromOtherList(TheXYaxisArrayList.get(RandomNumberGenerator));
}
пожалуйстаесли у вас есть вопрос или другая часть кода, я могу объяснить.