unc*_*ons 13 java collections guava
我有两套.(来自Guava HashMultimap.values()).如果两个集合的交集是非空集,我需要快速找到.我不需要知道常见元素,只要有共同元素.我正在考虑使用Sets.intersection,但是它是o(m + n),如果我们找到一个公共元素而不必创建整个交集(比如set.intersection(set2).any()),我们可以保释.(数据集非常大,此操作发生在循环中,因此性能至关重要.)
任何建议都是受欢迎的.谢谢.
Lou*_*man 26
使用正常的JDK,这只是
!Collections.disjoint(set1, set2)
Run Code Online (Sandbox Code Playgroud)
如果找到一个共同的元素,这会立即失败.
(虽然 - 为了它的价值 - Sets.intersection比你意识到的更懒惰.它在恒定时间内返回一个视图,并且它的isEmpty()方法也会在找到第一个共同元素后立即保释,所以它同样有效.)
| 归档时间: |
|
| 查看次数: |
4089 次 |
| 最近记录: |