【发布时间】:2014-07-27 06:13:44
【问题描述】:
我正在尝试检查对象数组是否包含特定字符串。
这是我对 Product 对象的构造函数:
public Product()
{
name = "No name yet";
demandRate = 0;
setupCost = 0;
unitCost = 0;
inventoryCost = 0;
sellingPrice = 0;
}
这是数组的初始化:
Product[] product = new Product[3];
我在这里Checking if long is in array 和Look if an array has an specified object 发现了类似的问题。所以我尝试了这段代码:
public boolean isAProduct(String nameOfProduct)
//Returns true if a name has been found otherwise returns false
{
boolean found = false;
int counter = 0;
while (!found && (counter < MAXNUMBEROFPRODUCTS))
{
if (Arrays.asList(product).contains(nameOfProduct))
{
found = true;
}
else
{
counter++;
}
}
return found;
}
但这不起作用,因为它允许我为产品输入相同的名称两次。所以我的问题是,我正在尝试的可能吗?如果没有,我该如何解决这个问题?
任何建议将不胜感激。
【问题讨论】:
-
这不是它在 Java 中的工作方式。您需要遍历每个“Product”对象并将“nameOfProduct”与“Product”对象的“name”进行比较。
-
@Nambari 你能提供一个我会如何做的例子吗? :)
-
我知道你在做课堂作业,所以我不想给你写代码。但是这里是骨架,遍历Product[],得到Product,然后比较这个Product-->“Name”和“nameOfProduct”。
-
为了将来参考,“类对象数组”的意思类似于
Class<?> [] = new Class<?>[] { Object.class, Integer.class, System.class };。你刚刚得到了一个对象数组。