java - 新手努力从数组列表中删除对象

标签 java arraylist

我需要根据元素自己的类实例中的变量来删除元素。

我有一个名为 Account 的类和一个名为 AccountList 的 ArrayList。据我所知,从数组中删除元素有两种方法:通过索引和使用 Object 0 方法。

不幸的是,这些都不适合我;如果对象的变量值“accountNumber”(来自 Account 类)等于用户输入的 AccountNumber 参数值,我需要删除该对象。我的导师想要一个带有名为“帐号”的字符串参数的 boolean 方法。

我的方法是使用 Account 类的 getAccNumber() getter 方法,如果它等于参数,则将其删除。

public boolean removeAccount(String AccountNumber)

{   

    if (AccountNumber.equals(Account.getAccNumber()))
    {

        accounts.remove(AccountNumber);
        return true;
    }
    else
    {
        return false;
    }
}

但是,这不起作用。

顺便说一句,我必须将 getAccNumber() 方法设置为静态,以允许 ArrayList 类进行访问。这弄乱了 Account 的实例;如果我创建它的新实例,新的 AccountNumber 值将覆盖之前的值。

有什么想法吗?

编辑...他的确切规范“removeAccount(String) 如果帐户存在,则应删除指定为参数的帐号的帐户。然后应通过 BlueJ“方法结果”返回适当的 boolean 值对话框。”

最佳答案

您不需要将 accountNumber 设为静态,只需循环遍历帐户列表并读取每个帐号并进行比较即可。

这应该对你有用:

public boolean removeAccount(String accountNumber)
{   
    return accounts.remove(getAccountByName(accountNumber));
}

public Account getAccountByName(String accountNumber){
     for(Account acc: accounts){
         if(accountNumber.equals(acc.getAccNumber())){
             return acc;
         }
     }    
}

按照你的方式,你会达到这样的状态:ConcurrentModificationException阅读更多相关内容。

关于java - 新手努力从数组列表中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26875111/

相关文章:

java - DataGen 替换 JSON 值

Java Applet,几个问题

Java正则表达式获取所有数字

java - 如何从两个数组列表中删除不常见的元素

java - 仅将 ArrayList 作为值而不是引用传递

java - 使用 Parcelable 在 Activity 之间发送对象数组列表

java - 在 ArrayList 中搜索字符串并返回另一个关联的字符串

java - 如何在 Java 中指定(给出实际名称)XML 字段 (Apache CXF)

java - Android Sqlite查询两个表放入一个arraylist

java - 在java中使用列表的列表