我们有一个元素列表和一个非常简单的碰撞检测,我们在其中检查每个对象与其他所有对象。
检查是可交换的,所以为了避免重复两次,我们会在 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 编写这个?
最佳答案
您不能复制 Java 迭代器,因此您必须在没有它们的情况下进行复制:
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 中制作迭代器的副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5963399/