我正在使用 HashMap,其中我使用 ArrayList 作为值。

像这样:

Map<Movie, List<Grades>> gradedMovies = new HashMap();

我正在尝试创建一种方法,我可以使用该方法遍历值以查看键(电影)是否已存在。如果是这样,我想在分配给特定键(电影)的列表中添加一个新值(等级)。像这样的东西:
public void addGrade(Movie movie, Grade grade) {
// stuff here }

最终,我无法打印一张 map ,该 map 将在将电影添加到 map 后显示电影及其评分。

这是如何实现的?还是我的整个方法(使用 map )完全错误?

感谢您的帮助。 (这是作业)

最佳答案

我认为您走在正确的道路上,只需确保您的电影对象实现了 equalshashCode,这样它就可以作为哈希映射的真正键。

如果你想要 pretty-print ,只需实现 toString 方法。

public void addGrade(Movie movie, Grade grade) {
    if (!gradedMovies.containsKey(movie)) {
        gradedMovies.put(movie, new ArrayList());
    }
    gradedMovies.get(movie).add(grade);
}

希望这有帮助,干杯!

关于java - 在 map 中使用列表 (Java),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10318266/

10-13 09:51