首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java的TreeMaps

使用java的TreeMaps
EN

Stack Overflow用户
提问于 2013-11-23 20:51:25
回答 3查看 151关注 0票数 0

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

EN

回答 3

Stack Overflow用户

发布于 2013-11-23 20:56:31

Map<Integer, ArrayList<String>>中,Integer将表示类别,ArrayList中的String将是电影名称。当然,您可以使用Integer或String以外的其他类。

票数 0
EN

Stack Overflow用户

发布于 2013-11-23 21:00:01

有两个想法:

您可以将电影名称映射到类别:

代码语言:javascript
复制
Map<String, Category> movies;

或者,您可以在某个类别下保留一个电影列表:

代码语言:javascript
复制
Map<Category, List<String>> movies;

总而言之,我建议通过其他方式进行索引,并将信息保留在Movie对象中。

票数 0
EN

Stack Overflow用户

发布于 2013-11-23 21:01:59

我建议采取以下方法:

代码语言:javascript
复制
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...like,您也要避免重复。无论如何,通过使用接口(Set或List)将为您提供更多的灵活性来选择以后的like...or实现,您甚至可以为不同的类别选择不同的接口,例如:对于动作LinkedList,而对于喜剧ArrayList。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20162517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档