我正在尝试检查地图中是否存在数组的每个元素。我通过使用containsKey函数完成了这个。但是当它返回null(如果toppingChosen不在地图中时我想要它)我无法处理错误。有谁知道我怎么能这样做?
for(int i = 0; i < toppingsChosen.length; i++)
{
t.toppings.containsKey(toppingsChosen[i])
}
答案 0 :(得分:2)
你可以这样做来检查它是否包含密钥,否则它不在你的地图中:
if (t.toppings.containsKey(toppingsChosen[i])){
//do what you want
}
else{
//not in your map
}
答案 1 :(得分:1)
您的语句将返回true或false,如果为false则返回下一个循环迭代,如果为true,则执行您需要的任何处理。
for(int i = 0; i < toppingsChosen.length; i++) {
if (t.toppings.containsKey(toppingsChosen[i])) {
//do whatever
} else {
// not in map, print something, throw an error,
// or do nothing and continue (not recommended)
}
}
答案 2 :(得分:0)
假设您只想跳过toppingsChosen[i]
,如果它不在地图中(浇头)
你可以沿着这些方向做点什么
for(int i = 0; i < toppingsChosen.length; i++)
{
if (!t.toppings.containsKey(toppingsChosen[i]))
continue;// it will just skip the element and loop over the rest of the toppings
else
//do something useful
}
答案 3 :(得分:0)
您可以使用扩展的for循环。
if (toppingsChosen != null) {
for (Topping topping : toppingsChosen) {
if (!t.toppings.containsKey(topping)) {
// handle missing topping
} else if (t.toppings.get(topping) == null) {
// handle error (could be collapsed with upper if branch.)
}
}
}
答案 4 :(得分:0)
for(int i = 0; i < toppingsChosen.length; i++)
{
if( t.toppings!=null){
if(t.toppings.containsKey(toppingsChosen[i])){
// value exist in your map
}else{
// value not exist in your map
}
}
}