首页 > 解决方案 > 更新包含彼此的 ArrayLists?

问题描述

抱歉,如果有类似的问题,我真的不知道如何调用这个概念来搜索问题。

所以我需要创建一个包含 3 个类的数据库,如下所示:

public class Actor {
    private String name;
    private ArrayList<Movie> movies; //all movies the actor has been in
}

public class Movie {
    private String name;
    private ArrayList<Actor> actors;
}

public class MovieDatabase {
    private ArrayList<Movie> movieList;
    private ArrayList<Actor> actorList; //all actors in the movie
}

我必须创建一个将电影和演员添加到数据库的方法。最终目标是新电影需要属于 Movie 类,并且包含其中的所有演员,对于新演员也是如此。

我无法弄清楚的是,由于 Movie 类包含一个 Actor 对象数组,而 Actor 类包含一个 Movie 列表数组,那么您如何更新以便最终添加的新 Movie 包含一个完整的 Actor 列表在其中,列表中的每个 Actor 都使用新的 Movie 对象更新其电影列表?

在这种情况下,递归是正确的概念吗?

标签: java

解决方案


假设添加了一部新电影

Movie movie = new Movies();

movie.setActors(listOfActors)

现在对于每个演员,您需要更新电影列表

listOfActors.forEach(actor -> addMovieToActor(movie,actor));


public addMovieToActor(Movie movie,Actor actor){

   List<Movies> existingMovies =actor.getMovies();

   existingMovies.add(movie);
}

根据您的需要,您可能需要注意更新之间的同步。


推荐阅读