繁体   English   中英

将String对象添加到ArrayList

[英]Adding String object to ArrayList

我试图在我的代码中创建一个方法来搜索数组列表(在我的情况下为customerList,其中包含Customer对象),如果在ArrayList中找不到某些内容,则会向其中添加一些新内容...

这是我全部设置的方式...

public class CustomerDatabase {

   private ArrayList <Customer> customerList = null;

   public CustomerDatabase() {
       customerList = new ArrayList<Customer>();
  }

这就是我要尝试的方法。 我正在尝试获取它,以便如果在ArrayList中找不到它,则将给定名称为“ n”的Customer添加到ArrayList的末尾...

public void addCustomer(String n)
{
   for(Customer c:customerList)
      if (!customerList.contains(n))
         customerList.add(n);        
}

我知道整个.add和String都出了问题,但是我不确定哪里出了问题。 任何输入都会很棒!

您将Customer类与其name属性混淆了。 您无法检查Custom列表是否包含String因为它永远不会包含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() 根据需要进行调整。

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.
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM