java如何检查hashmap中的值
我想做一个方法来检查我是否能看到我的每一堆都有6张卡片。这是我的方法
public boolean checkIfPileHasSixCards() {
map.put("tpile1", tpile1);
map.put("tpile2", tpile2);
map.put("tpile3", tpile2);
for (ArrayList<Card> value : map.values()) {
int size=value.size();
if(size==6) {
return true;
}
}
return false;
}
我的逻辑是否正确,是否有更有效的方法可以迭代这些值并检查每个值(ArrayList)的大小是否为6
# 1 楼答案
在循环中返回
true
是不正确的——这样,如果映射中的任何列表有六个元素,而不是所有元素都有,则方法将返回true
。相反,如果列表没有六个元素,则应该返回false
,并且只在迭代完值后返回true
:请注意,顺便说一句,使用Java8的流可以使这个代码段更干净。它不会更高效(在最坏的情况下仍然是O(n)操作),但肯定会更简洁: