0

我有这两种方法来寻找客户。如何从列表中删除我刚刚找到的客户?我正在使用 arrayList 继承我的两种方法:

public User findById(int id) 
{
    for (User u : list) 
    {
        if (u.getCustomerID() == id) 
        {
            return u;
        }
    }
    return null; // or empty User
}

public void findByID()
{
    int customer = Integer.parseInt(findCustomerField.getText());

    if(customer != 0)
    {
        User user = list.findById(customer);
        outputText.setText(user.toString());
    }
}
4

1 回答 1

0

如何从列表中删除我刚刚找到的客户?

就像调用remove方法一样简单:

list.remove(user);

但是,这将需要再次通过列表才能找到条目。

如果你想要一个按 ID 删除的方法,你可以用迭代器来做到这一点:

public bool removeById(int userId) {
    for (Iterator<User> iterator = list.iterator(); iterator.hasNext(); ) {
        if (iterator.next().getCustomerID() == id) {
            iterator.remove();
            return true; // Found and removed
        } 
    }
    return false; // Not found
}
于 2013-04-07T16:21:36.413 回答