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},…}
我现在处理这个问题的方式是
fullList
中删除,因为我没有使用“迭代器”风格的迭代(因为我使用的是Guava谓词,它无论如何都不会工作,因为我没有迭代器指针指向Itarables.find(…)
函数找到的元素)
我也希望以“高效”的方式进行,所以我希望避免多个嵌套循环等
如何更正确/有效地解决这个问题?我有点卡住了。我会为每个元素创建一个频率计数。用番石榴的话来说,这是一个多集。从中,您可以创建一个对集合和另一个单集合。这可以通过一次原始列表和一次频率计数映射来完成。i、 e.O(n)你知道什么是
迭代器。find
是一个嵌套循环吗?如果不了解Guava collections api,那么使用它是非常危险的。。。说得好。