ame*_*nin -1 java collections guava
假设我有一个字符串列表(简化)
fullList = {a,b,c,d,a,d,c,b}
而且我想找到喜欢的情侣
couplesList = {{a,a},{b,b}, ...}
我此刻接近这个问题的方式是
我最终得到了两个对象{a,a},但是我无法将它们从中删除,fullList因为我没有使用迭代的"迭代器"样式(因为我使用的是番石榴谓词它无论如何都不会起作用 - 因为我没有迭代器指向由Itarables.find(...)函数找到的元素).
我想以"高效"的方式做到这一点,所以我想避免多个嵌套循环等.
任何想法如何更正确/有效地处理这个问题?我有点卡住了.
我会为每个元素创建一个频率计数.在番石榴术语中,这是一个MultiSet.从那里你可以创建一对对的集合,以及另一个单打的集合.这可以通过原始列表的一次传递和频率计数图的一次传递来完成.即O(n)