hashmap keySet() 方法 returns 只有第一个元素
hashmap keySet() method returns only first element
我正在尝试通过以下代码遍历名为 products 的 HashMap :
public Product findProduct (int id)
{
Product result = null;
for (Product product : products.keySet())
{
if (product.getId() == id)
result = product;
break;
}
return result;
}
事情是在运行时,产品包含 2 个元素
但是 product:products.keySet() returns 只有第一个元素,我不知道为什么,结果如果我将 102 传递给该方法,它会抛出异常。
您是说 products.keySet()
仅根据您的循环所经历的迭代返回一个元素吗?
我看到您在 result=product;
语句之后放置了 break;
语句,这导致您的循环在第一次迭代时退出。如果这不是故意的,这可能就是罪魁祸首。
您可以尝试将 if
之后的语句放在这样的块中
if(product.getId()==id){
result=product;
break;
}
我正在尝试通过以下代码遍历名为 products 的 HashMap :
public Product findProduct (int id)
{
Product result = null;
for (Product product : products.keySet())
{
if (product.getId() == id)
result = product;
break;
}
return result;
}
事情是在运行时,产品包含 2 个元素
但是 product:products.keySet() returns 只有第一个元素,我不知道为什么,结果如果我将 102 传递给该方法,它会抛出异常。
您是说 products.keySet()
仅根据您的循环所经历的迭代返回一个元素吗?
我看到您在 result=product;
语句之后放置了 break;
语句,这导致您的循环在第一次迭代时退出。如果这不是故意的,这可能就是罪魁祸首。
您可以尝试将 if
之后的语句放在这样的块中
if(product.getId()==id){
result=product;
break;
}