Java 根据用户输入从ArrayList中删除对象

Java 根据用户输入从ArrayList中删除对象,java,object,arraylist,iterator,Java,Object,Arraylist,Iterator,我有一个像这样的对象: Account account = new Account (0, fName, sName, adr, city, pos, uniqueID); 然后,我通过用户输入将该对象放入ArrayList: List<Account> newAcc = new ArrayList<Account>(); 这不管用。对象不会以这种方式删除 基本上:有没有一种方法可以使用用户输入,然后遍历列表,查看是否有任何对象包含相当于该对象任何部分的字符串 我非常

我有一个像这样的对象:

Account account = new Account (0, fName, sName, adr, city, pos, uniqueID);
然后,我通过用户输入将该对象放入ArrayList:

List<Account> newAcc = new ArrayList<Account>();
这不管用。对象不会以这种方式删除

基本上:有没有一种方法可以使用用户输入,然后遍历列表,查看是否有任何对象包含相当于该对象任何部分的字符串

我非常需要帮助,所以非常感谢任何能帮助我走向正确方向的人

干杯。

您将迭代器对象与rmvId进行比较。这将始终返回false,因为它们不是同一类型。我想您应该检查迭代器的下一个对象的id是否等于rmvId

因此,使用i.next获取下一个SavingsAccount,将其id与rmvId进行比较,然后通过迭代器将其删除


如果SavingsAccount id的类型为int,则可以通过以下方式进行比较:sa.getId==rmvID。

检查objects属性是否包含给定id,然后通过其索引删除列表中的相关对象

for(int i=0;i<newSacc.size();i++){
    if (newSacc.get(i).getId().equals(rmvID)){
        newSacc.remove(i);
    }
}

另外,请确保帐户覆盖equals和hashCode。很抱歉,在第一篇文章中引用了错误的数组。哦,您应该从列表末尾循环以从列表中删除任何内容。否则,对于列表[1,1,1,1,1],从列表中删除1而不是空列表后,将得到[1,1]。
  SavingsAccount sa = i.next();
  if (sa.getId().equals(rmvID)) { // just an example.. I don't know how you access the 
                                  // saving account's id nor it's type. This example expect
                                  // it is `Integer`
     i.remove();
  }
for(int i=0;i<newSacc.size();i++){
    if (newSacc.get(i).getId().equals(rmvID)){
        newSacc.remove(i);
    }
}