java - 如何在 Java 中制作迭代器的副本?

标签 java iterator copy

我们有一个元素列表和一个非常简单的碰撞检测,我们在其中检查每个对象与其他所有对象。

检查是可交换的,所以为了避免重复两次,我们会在 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/

相关文章:

java |整数方法 |我需要 ELSE {不返回任何内容}

c++ - 如何从输出迭代器中获取值类型?

file - 将文件复制到多个文件夹,而不是子文件夹批量

mysql - 如何在创建时复制行?

objective-c - "copy"和 "retain"有什么区别?

java - 如何解决 CWE 117 问题

java - 寻找wordnet中同义词集之间的距离

java - mybatis中使用$与#

java - 如何将 "peek"设置为 Java 扫描器上的下一个元素?

java - next() 已耗尽元素时的并发修改