繁体   English   中英

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

[英]How to remove elements from collection while iterating without iterator

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

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

我想找到像

couplesList = {{a,a},{b,b}, ...}

我现在解决这个问题的方法是

  1. 获取第一个元素
  2. 使用番石榴谓词找到合适的对象
  3. 现在怎么办?

我最终有2个对象{a,a},但是我无法从fullList删除它们,因为我没有使用“迭代器”样式进行迭代(因为我使用的是Guava谓词,所以无论如何都无法工作-因为我没有Itarables.find(...)函数找到的指向元素的迭代器指针)。

我也想以“高效”的方式做到这一点,所以我想避免多个嵌套循环等。

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

我将为每个元素创建一个频率计数。 用番石榴术语来说,这是一个多集。 由此,您可以创建一个对的集合,以及一个单身的另一个集合。 可以通过一遍原始列表和一遍频率计数图来完成。 即O(n)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM