我正在尝试在我的代码中创建一个搜索数组列表的方法(在我的情况下是customerList,其中包含Customer对象),并且如果在ArrayList中找不到某些内容,它将添加一些新内容...
以下是我如何设置它......
PDOStatement::fetchAll
这是我想要的方法。我试图得到它,以便它将在ArrayList的末尾添加给定名称为“n”的客户,如果在ArrayList中找不到它...
public class CustomerDatabase {
private ArrayList <Customer> customerList = null;
public CustomerDatabase() {
customerList = new ArrayList<Customer>();
}
我知道整个.add然后是String的东西出了问题,但我不确定我哪里出错了。任何输入都会很棒!
答案 0 :(得分:3)
您将Customer
类与其name属性混淆。您无法检查Custom
的列表是否包含String
,因为它永远不会。但是,您可以检查列表中的任何客户是否具有您正在寻找的属性。如果您找不到任何内容,则必须使用该字符串构造一个新对象:
public void addCustomer(String name) {
for (Customer c : customerList) {
if (c.getName().equals(name)) {
// duplicate found
return;
}
}
// no duplicates; add new customer
customerList.add(new Customer(name));
}
这假设Customer
有一个构造函数Customer(String name)
和一个方法String getName()
。根据需要进行调整。
答案 1 :(得分:0)
Customer是一个类,你创建了一个Customer类类型的数组列表。没有直接的方法来比较name(String)和Customer类对象。
你应该改变你的代码 -
public void addCustomer(String name) {
for (Customer c : customerList) {
if (!c.getName().equals(name)) {
Customer c=new Customer();
c.setName(name);
customerList.add(c);
}
}
}
在客户类
Class Customer{
private String name;
//getter and setter method for name.
}