在arrayList中搜索项目,将其与输入进行比较并将其删除

时间:2018-05-01 15:49:35

标签: java arraylist

关于StackOverflow的第一个问题:

所以我有一个程序,其中包含一个名为items的类,允许创建名为'item'的对象......这些项目对象代表书籍并包含基于此类的数据(String title,String author,String genre)。

以下参考是项目对象类中的equals方法:

public boolean equals(Item i)
{
    if((i.getTitle()).equals(title)&&(i.getAuthor()).equals(author)&&(i.getType()).equals(title)){
        return true;
    } else {
        return false;        
    }
}

在另一个名为library的类中,它从文本文件读取并创建一个'Item'的数组列表,有一个'remove'方法,它返回一个布尔值,具体取决于该项是否存在于arrayList中。这是我到目前为止删除方法的代码:

public boolean remove(Item i)
{
   //return false if item is not in the list, call equals method from item class
  if(!items.contains(i)){
     return false;
  } else {

  }
}

在验证项目在列表中之后,我需要使用Item类中的equals方法将输入'Item i'与列表中的项进行比较,但我不完全确定如何找到确切的内容列表中的对象看起来等于'Item i',然后使用equals方法对其进行验证,以便在将其从列表中删除之前将其与'Item i'进行比较。

2 个答案:

答案 0 :(得分:1)

类似的东西:

if (list.contains(i))
    list.remove(i);

这就是你想要的。也许更多的背景会有所帮助。

答案 1 :(得分:0)

您需要遍历列表中的所有元素。如果找到该元素,则将其删除并返回true。如果找不到,请返回false

public boolean remove(Item i)
{
   //return false if item is not in the list, call equals method from item class
   for(Item current : items){
      if(current.equals(i)){
         items.remove(current);
         return true;
      } 
   }
   return false;
}