How can I make a copy of an iterator in Java?(如何在 Java 中制作迭代器的副本?)
问题描述
我们有一个元素列表,并且有一个非常简单的碰撞检测,我们检查每个对象与其他对象.
We have a list of elements and have a very simplistic collision detection where we check every object against every other object.
检查是可交换的,所以为了避免重复两次,我们会在 C++ 中这样做:
The check is commutative, so to avoid repeating it twice, we would do this in C++:
for (list<Object>::iterator it0 = list.begin(); it0 != list.end(); ++it0)
{
for (list<Object>::iterator it1 = it0; it1 != list.end(); ++it1)
{
Test(*it0, *it1);
}
}
这里的关键是副本
it1 = it0
你会如何用 Java 写这个?
How would you write this in Java?
推荐答案
你不能复制 Java 迭代器,所以你必须在没有它们的情况下这样做:
You cannot copy Java iterators, so you'll have to do it without them:
for(int i=0; i<list.size(); i++){
for(int j=i; j<list.size(); j++){
Test(list.get(i), list.get(j));
}
}
这篇关于如何在 Java 中制作迭代器的副本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在 Java 中制作迭代器的副本?


基础教程推荐
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- 降序排序:Java Map 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01