我正在使用来自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)
,但空映射不包含null。 Likewiese .values().isEmpty()
无效,因为所有值都放在一起。是否有一种简洁的方法来检查这种情况,也许使用API中的方法?
最佳答案
听起来就像您试图继续循环,直到每个键至少有一个值。如果您的数据集不完整,这将使您很可能陷入无限循环。为了达到目的,您需要查看键而不是值。如果您知道有多少种单词类型,则应该使用以下内容。
int totalWordTypes = 10;
while (wordMap.keySet().size() < totalWordTypes) {
//...
}
否则,您将需要寻找的单词类型的集合,并使用类似...
while (!wordMap.keySet().containsAll(wordTypesCollection)) {
//...
}
关于java - 检查与MultiValueMap关联的所有集合是否都是非空的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21966654/