gpt4 book ai didi

java - 复制迭代器

转载 作者:行者123 更新时间:2023-11-29 05:24:37 26 4
gpt4 key购买 nike

在java中,如何复制迭代器?这里因为 i 和 j 是引用变量,一个变量的变化反射(reflect)在另一个变量中。如何在下面的代码中获得 1 1 的预期输出。而不是 1 2。

        List<Integer> l = new ArrayList<Integer>();
l.add(1);
l.add(2);
l.add(3);
l.add(4);

Iterator i = l.iterator();
Iterator j = i;

System.out.println(i.next() + "\n");
System.out.println(j.next());
System.out.println("This prints 1 2, But I want 1 1, to be printed");

编辑:

我可以,

迭代器 i = l.iterator();
迭代器 j = l.iterator();
但是得到这个迭代器并不像这个例子那么简单,代价很大。所以我不会在我的原始代码中这样做。实际上我将得到的是数据库行的迭代器,它包括许多复杂的条件。

最佳答案

Iterator j = l.iterator();

代替

Iterator j = i;

我们只能朝一个方向迭代。所以,如果没有新的迭代器,你就不能移动到集合的开始。此外,获取迭代器并不意味着加载整个集合。把它想象成一个光标。

关于java - 复制迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23168493/

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