我正在写一个非常简单的世界模拟器。人们每走一步,都会变老,一旦达到最大年龄,他们就会死亡。我已经设法让人们死亡并将他们从ArrayList移除。但是,我想显示在每个时间步骤中有哪些人死亡(以便从ArrayList中删除​​哪些元素),但是我不知道该怎么做。这是我的代码:

for(Iterator<Person> personIterator = persons.iterator(); personIterator.hasNext();) {
    Person person = personIterator.next();
    if (person.getAge() >= Person.MAX_AGE){
        personIterator.remove();
    }
}

最佳答案

您可以将删除的元素累积到另一个集合中,然后返回/打印/不管它是什么。例如。:

List<Person> deaths = new LinkedList<>();
for(Iterator<Person> personIterator = persons.iterator(); personIterator.hasNext();) {
    Person person = personIterator.next();
    if (person.getAge() >= Person.MAX_AGE) {
        deaths.add(person);
        personIterator.remove();
    }
}

关于java - 显示哪些元素已从Arraylist中删除,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34698982/

10-11 09:31