2016-11-05 85 views
-1

我需要獲取相交集的大小,然後我需要在公式中使用大小。如何獲取相交集的大小?

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

我試過以幾種不同的方式做到這一點,但我的代碼只是越來越複雜。任何人都可以讓我走上正確的道路嗎?

謝謝。

+0

歡迎來到SO!我希望你會發現這個網站很有用。根據我的經驗,學習使用該網站也有助於我個人成長爲一名開發人員。這是一個很好的問題開始。你對你想達到什麼有一個想法,它很直觀,但是它缺少一個你已經與你觀察到的輸出和期望的輸出一起嘗試的例子。請考慮添加這些內容,以便其他用戶可以測試您的代碼並向您提供代碼,作爲對您有用的代碼。 – Bobby

回答

2

根據documentationretainAll方法返回boolean - 是否更改了設置。你可以忽略這個值。這種方法的主要作用是修改集a,所以它包含一個交集。因此,解決方案是

a.retainAll(b); 
int result = a.size(); 

請注意,該代碼更改了集a的內容。如果您需要保留它:

Set<String> intersection = new HashSet<String>(a); 
inersection.retainAll(b); 
int result = intersection.size();