[英]Checking if there is a certain string in an object contained in an ArrayList, then adding the object to another 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.