2014-02-23 60 views
1

我正在使用Apache Collections的MultiValueMap來收集不同類型的單詞(名詞,動詞等),並且我希望在繼續之前檢查每個單詞類型是否至少有一個。檢查是否所有與MultiValueMap關聯的集合都是非空的?

一般概述像這樣(開始鍵後):

MultiValueMap wordMap = new MultiValueMap().decorate(new HashMap(), LinkedList.class); 
while (wordMap.notAllEmpty()){ 
    wordMap.put(wordType,word) // eg, Noun, Giraffe 
} 

但是我沒有方法notAllEmpty()。我試過.values().contains(null),但空映射不包含空值。 Likewiese .values().isEmpty()不起作用,因爲所有的值都放在一起。

有沒有一種簡潔的方法來檢查這種情況,也許從API的方法?

+1

迭代通過所有的值,並檢查各值是不是空名單。請注意,MultiValueMap不是標準的Java類,並且您沒有說明它來自哪裏。 –

+0

@JBNizet拍!我正在衝出去,但沒有我在我的手機上,我可以修復它。 – Pureferret

回答

1

這聽起來像你試圖繼續你的循環,直到每個鍵至少有一個值。如果你的數據集沒有完成,這會給你帶來無限循環的巨大可能性。爲了達到這一點,雖然你需要看看鑰匙,而不是價值觀。如果您知道有多少種字詞類型,則應該使用以下內容。

int totalWordTypes = 10; 
while (wordMap.keySet().size() < totalWordTypes) { 
    //... 
} 

否則,你就需要你正在尋找和使用類似字類型的集合...

while (!wordMap.keySet().containsAll(wordTypesCollection)) { 
    //... 
} 
+0

Doh!現在似乎很明顯。 – Pureferret

相關問題