我有一个程序需要使用地图来存储有关电影的信息。基本上有四五个类别,喜剧动作等,然后是电影的名称。我尝试将类别分配给一个键并具有多个值,这些值是电影但不起作用。我可以使用arraylist来存储包含两个字段的对象,并使用for循环遍历整个列表并使用对象get方法来查看每个值。我怎样才能用地图做到这一点?我需要我的程序做的是询问用户一个类别,然后有一个for循环遍历列表并打印出该类别的每部电影。每次我尝试使用地图时,都不会打印任何内容。
答案 0 :(得分:0)
Map<Integer, ArrayList<String>>
代表该类别的Integer
和String
内的ArrayList
将是电影名称。当然,您可以使用除Integer或Strings之外的其他类。
答案 1 :(得分:0)
两个想法:
您可以将电影名称映射到类别:
Map<String, Category> movies;
或者你可以保留一个类别下的电影列表:
Map<Category, List<String>> movies;
总的来说,我建议使用其他内容进行索引,并将信息保存在Movie
对象中。
答案 2 :(得分:0)
我建议采用以下方法:
enum Category {COMEDY, ACTION }
// class containing movie related information
public class Movie {
private String name;
// other useful fields
// getter and setters
}
// ... your code containing the "movies logic"
Map<Category, List<Movie>> movies ...
像这样,您可以看到要使用的类别,并提取给定类别的列表。即使一个集合是一个更好的容器来保存电影而不是列表......就像你避免重复一样。无论如何,通过使用交互面(Set或List)可以更灵活地选择您想要的后期监视器实现...甚至可以针对不同的类别使其不同,例如:for Action LinkedList和Comedy ArrayList。