2017-01-13 21 views
2

Есть ли рекомендуемый способ проверить, имеет ли две коллекции scala Set s непустые пересечения? Конечно, очевидноПроверка того, что пересечение сетки scala пуста

set1.intersect(set2).isEmpty 

Но это на самом деле сначала создает пересечение, если только я не ошибаюсь. Есть ли лучший/более быстрый способ?

ответ

2

Идиоматическим способом является использование .intersect() или .diff(), но в обоих случаях создается новая коллекция внутри.

Лучшие способы являются:

  • Вручную перебрать первого набора до матча во втором
  • Использование вероятностной Bloom Фильтр, что занять некоторое время, чтобы построить его, но можно сравнить два набора (даже очень большой) очень быстро (иногда может давать ложные срабатывания)