Java 8 size()表示3,但forEach()执行两次

Java 8 size()表示3,但forEach()执行两次,java-8,Java 8,我有一个列表(从技术上讲,它是JavaFXAPI中的一个ObservableList),其中包含三个元素。我已经使用.size()和调试器验证了内容。但是,当我调用list.forEach()时,我的使用者只运行了两次。什么原因可能导致这种情况?如果您在迭代列表时从列表中删除元素,则可能会发生这种情况。如果是这种情况,请复制一份列表,对其进行迭代,然后从原始列表中删除元素。如果在迭代列表时从列表中删除元素,则可能会发生这种情况。如果是这样的话,复制一份列表,迭代,然后从原始列表中删除元素。嘿,我

我有一个列表(从技术上讲,它是JavaFXAPI中的一个ObservableList),其中包含三个元素。我已经使用.size()和调试器验证了内容。但是,当我调用list.forEach()时,我的使用者只运行了两次。什么原因可能导致这种情况?

如果您在迭代列表时从列表中删除元素,则可能会发生这种情况。如果是这种情况,请复制一份列表,对其进行迭代,然后从原始列表中删除元素。

如果在迭代列表时从列表中删除元素,则可能会发生这种情况。如果是这样的话,复制一份列表,迭代,然后从原始列表中删除元素。

嘿,我认识这个家伙!正如user3486184所说,您可能在迭代列表时从列表中删除元素。我认为,更可能的是,由于它是一个可观察者,其他人可能正在观察它并产生副作用。请参阅一个示例,了解这会如何给您带来麻烦。不过我们得看看密码才能确定嘿Stuart!我本来打算在推特上给你发这个链接的。:)谢谢你的来电(当然,还有用户3486184)。我绝对是在改变lambda的收藏。我以后会把自己关在地上,但我需要先把它修好菲,我认识这个家伙!正如user3486184所说,您可能在迭代列表时从列表中删除元素。我认为,更可能的是,由于它是一个可观察者,其他人可能正在观察它并产生副作用。请参阅一个示例,了解这会如何给您带来麻烦。不过我们得看看密码才能确定嘿Stuart!我本来打算在推特上给你发这个链接的。:)谢谢你的来电(当然,还有用户3486184)。我绝对是在改变lambda的收藏。我以后会把自己关在地上,但我需要先把它修好P