删除具有ArrayList的多个参数的元素

时间:2019-05-08 01:41:54

标签: java list arraylist

我想删除ArrayList的实例,但是现在有了代码,它列出了删除的电影。我有一个包含titleyeargenrebalance的ArrayList。目的是仅使用标题和年份从列表中删除。

我尝试了for-each循环,但这会导致ConcurrentModificationException错误,而且我不确定如何使用use Iterators使其在本示例中起作用。

应该删除由title和year指定的实例,以便当它列出moviesAvailable时,该列表将被更新。但是,在列出时会显示所有电影(可能是因为它实际上并未删除电影)。

2 个答案:

答案 0 :(得分:1)

一种删除目标电影的方法是通过Collections.removeIf()方法:

public void removeMovie() {
    System.out.println("\nRemoving a movie.");
    System.out.print("Enter the title of the movie: ");
    String title = In.nextLine();
    System.out.print("Enter the year: ");
    int year = In.nextInt();
    moviesAvailable.removeIf(movie -> movie.hasType(title, year));
    // other stuff...
}

注意

  • removeIf方法遍历您的集合,并按其名称进行更改,删除一个满足条件的元素(在本例中为电影)。
  • 如果未删除您的条目,请检查titleyear是否正确。例如,title是否包含尾随换行符?

答案 1 :(得分:0)

您可以做类似的事情

 moviesAvailable.removeIf(m -> m.hasType("s",2));