如何获得相交集的大小?

时间:2016-11-05 02:13:52

标签: java set-intersection

我需要获得相交集的大小,然后我需要使用公式中的大小。

Set<String> a;
Set<String> b;
a.retainAll(b).size();
// error: cannot invoke size() on primitive type boolean//

我试图以几种不同的方式做到这一点,但我的代码变得越来越复杂。谁能让我走上正确的道路?

感谢。

1 个答案:

答案 0 :(得分:2)

根据documentation 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();