检查是否与多值映射关联的所有集合都为非空



我正在使用Apache Collections的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 中的方法?

听起来你试图继续循环,直到每个键至少有一个值。如果您的数据集不完整,这将为您打开无限循环的很大可能性。要达到目的,您需要查看键,而不是值。如果您知道有多少种单词类型,那么您可能应该使用以下单词。

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

否则,您将需要您正在寻找的单词类型的集合,并使用类似...

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

最新更新