gpt4 book ai didi

java - While 循环而不破坏先前的引用

转载 作者:行者123 更新时间:2023-12-01 15:03:56 27 4
gpt4 key购买 nike

在下面的循环中,marker 是一个迭代列表,每个项目都绘制在 Canvas 上。然而,随着循环的进行,我相信以前的引用被破坏了。如何为每次循环运行创建一个唯一的实例?

            //Draw AR markers in reverse order since the last drawn should be the closest
ListIterator<Marker> iter = collection.listIterator(collection.size());
while (iter.hasPrevious()) {
Marker marker = iter.previous();
marker.draw(canvas);
}

我尝试了以下方法,但没有成功。循环到达第二项,然后出现 NoSuchElementException。

        while (iter.hasPrevious()) {
int i = 0;
try {

Marker marker = iter.previous();
marker.draw(canvas);
++i;
System.out.println("Item number 1 " + i);
Marker marker1 = iter.next();
marker1.draw(canvas);
++i;
... repeated up to marker7 then catching the NoSuchElementException.

最佳答案

这不是问题。

您没有创建新的Marker对象,只是从可迭代的Collection中读取它。原始集合(可能还有其他对象)包含对您正在循环的对象的引用,因此它们不会被销毁。

您的第二个代码仅在循环开始时检查 iter.hasPrevious(),但它正在执行许多操作。如果 Collection/iterator 中没有足够的元素,那么当尝试访问不存在的元素时(例如,执行 iter.previous()iter 到达第一个元素之后)。

关于java - While 循环而不破坏先前的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238497/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com