我想删除ArrayList的实例,但是现在有了代码,它列出了删除的电影。我有一个包含title
,year
,genre
和balance
的ArrayList。目的是仅使用标题和年份从列表中删除。
我尝试了for-each循环,但这会导致ConcurrentModificationException
错误,而且我不确定如何使用use Iterators使其在本示例中起作用。
应该删除由title和year指定的实例,以便当它列出moviesAvailable时,该列表将被更新。但是,在列出时会显示所有电影(可能是因为它实际上并未删除电影)。
答案 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
方法遍历您的集合,并按其名称进行更改,删除一个满足条件的元素(在本例中为电影)。 title
和year
是否正确。例如,title
是否包含尾随换行符?答案 1 :(得分:0)
您可以做类似的事情
moviesAvailable.removeIf(m -> m.hasType("s",2));