Как получить размер пересекаемого множества?
Мне нужно получить размер пересекаемого множества, а затем мне нужно использовать размер в формуле.
Set<String> a;
Set<String> b;
a.retainAll(b).size();
// error: cannot invoke size() on primitive type boolean//
Я пытался сделать это несколькими различными способами, но мой код становился все более и более сложным. Кто-нибудь может поставить меня на правильный путь?
Благодарю.
1 ответ
Согласно документации retainAll
метод возвращает boolean
- был ли изменен набор. Вы можете игнорировать это значение. Основным эффектом этого метода является модификация набора a
, так что он содержит пересечение. Следовательно, решение
a.retainAll(b);
int result = a.size();
Обратите внимание, что содержимое множества a
изменен этим кодом. Если вам нужно сохранить его:
Set<String> intersection = new HashSet<String>(a);
inersection.retainAll(b);
int result = intersection.size();