TreeMaps与java

时间:2013-11-23 12:51:25

标签: java map hashmap treemap

我有一个程序需要使用地图来存储有关电影的信息。基本上有四五个类别,喜剧动作等,然后是电影的名称。我尝试将类别分配给一个键并具有多个值,这些值是电影但不起作用。我可以使用arraylist来存储包含两个字段的对象,并使用for循环遍历整个列表并使用对象get方法来查看每个值。我怎样才能用地图做到这一点?我需要我的程序做的是询问用户一个类别,然后有一个for循环遍历列表并打印出该类别的每部电影。每次我尝试使用地图时,都不会打印任何内容。

3 个答案:

答案 0 :(得分:0)

Map<Integer, ArrayList<String>>代表该类别的IntegerString内的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。