Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不使用迭代器进行迭代时从集合中删除元素_Java_Collections_Guava - Fatal编程技术网

Java 如何在不使用迭代器进行迭代时从集合中删除元素

Java 如何在不使用迭代器进行迭代时从集合中删除元素,java,collections,guava,Java,Collections,Guava,假设我有一个字符串列表(简化) fullList={a,b,c,d,a,d,c,b} 我想找到像这样的夫妇 couplesList={{a,a},{b,b},…} 我现在处理这个问题的方式是 获取第一个元素 使用番石榴谓词找到合适的对象 现在怎么办 我最终得到了两个对象{a,a},但我无法将它们从fullList中删除,因为我没有使用“迭代器”风格的迭代(因为我使用的是Guava谓词,它无论如何都不会工作,因为我没有迭代器指针指向Itarables.find(…)函数找到的元素) 我也希望以“高

假设我有一个字符串列表(简化)

fullList={a,b,c,d,a,d,c,b}

我想找到像这样的夫妇

couplesList={{a,a},{b,b},…}

我现在处理这个问题的方式是

  • 获取第一个元素
  • 使用番石榴谓词找到合适的对象
  • 现在怎么办
  • 我最终得到了两个对象{a,a},但我无法将它们从
    fullList
    中删除,因为我没有使用“迭代器”风格的迭代(因为我使用的是Guava谓词,它无论如何都不会工作,因为我没有迭代器指针指向
    Itarables.find(…)
    函数找到的元素)

    我也希望以“高效”的方式进行,所以我希望避免多个嵌套循环等


    如何更正确/有效地解决这个问题?我有点卡住了。

    我会为每个元素创建一个频率计数。用番石榴的话来说,这是一个多集。从中,您可以创建一个对集合和另一个单集合。这可以通过一次原始列表和一次频率计数映射来完成。i、 e.O(n)

    你知道什么是
    迭代器。find
    是一个嵌套循环吗?如果不了解Guava collections api,那么使用它是非常危险的。。。说得好。