所以这就是我需要帮助转换的循环:
public Product findProduct(int id) {
Product found = null;
for(Product m : stock){
if(m.getID() == id){
found = m;
}
}
return found;
}
它应该搜索库存集合(我刚刚开始学习,所以我不太了解这些术语)对于一个Product对象,其ID字段与我们在方法中输入的int值相同。 我知道了一个while循环,我想我有点理解它。我不能得到的是我应该如何获得m.getID()的值,即Product类中的ID字段。 该类不允许具有import.java.util.Iterator
答案 0 :(得分:1)
相当简单并且意味着返回的Product对象(如果它不为null)将通过id
方法访问getID()
的值:
public Product findProduct(int id) {
for(Product m : stock) {
if(m.getID() == id){
return m;
}
}
return null;
}
答案 1 :(得分:0)
Product found = null;
int counter = 0;
while(counter < stock.size())
{
if(stock.get(i).getID() == id)
{
found = stock.get(i).getID();
break;
}
counter++;
}
这将使用while循环遍历您的列表,并在找到元素时退出循环。打破;用于在找到元素时突破循环。查看while循环的语法,并尝试弄清楚它是如何工作的。
答案 2 :(得分:0)
如果您想使用while
循环,请使用get(...)
方法检查每个项目:
public Product findProduct(int id) {
int counter = 0;
while(counter < stock.size())
{
if(stock.get(counter) != null && stock.get(counter).getID() == id)
return stock.get(counter);
counter++;
}
return null;
}
使用null
方法时,请务必进行.get(...)
检查。
for
循环的替代选项:
public Product findProduct(int id) {
for(int i = 0; i< stock.size(); i++)
if(stock.get(i) != null && stock.get(i).getID() == id)
return stock.get(i);
return null;
}
注意:根据.equals(...)
类的编写方式,您可能需要在此使用==
而不是Product
。
然后当你调用方法时:
int id = //whatever
Product product = findProduct(id);
int newId;
if(product != null)
newId = product.getID();//should be same as id