Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java实现树映射_Java_Map_Hashmap_Treemap - Fatal编程技术网

用java实现树映射

用java实现树映射,java,map,hashmap,treemap,Java,Map,Hashmap,Treemap,我有一个程序,需要使用地图来存储有关电影的信息。基本上有四到五个类别,喜剧动作等等,然后是电影的名字。我尝试将类别分配给一个键,并使用多个值,这些值都是电影中的值,但不起作用。我可以使用arraylist存储包含两个字段的对象,并使用for循环遍历整个列表,使用objects get方法查看每个值。我怎样才能用地图来做呢?我需要我的程序做的是让用户输入一个类别,然后让for循环遍历列表并打印出每个具有该类别的电影。每次我尝试使用贴图时,它都不会打印任何内容。如何使用贴图,其中整数表示类别,数组列

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

如何使用
贴图
,其中
整数
表示类别,
数组列表中的
字符串
将是电影名称。当然,您可以使用整数或字符串以外的其他类。

有两个想法:

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

Map<String, Category> movies;
Map<Category, List<String>> movies;
地图电影;
或者,您可以将电影列表保存在一个类别下:

Map<String, Category> movies;
Map<Category, List<String>> movies;
地图电影;

总的来说,我建议使用其他方法编制索引,并将信息保存在
电影
对象中。

我建议采用以下方法:

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 ...
enum类别{喜剧,动作}
//包含电影相关信息的类
公映{
私有字符串名称;
//其他有用的领域
//二传手
}
// ... 包含“电影逻辑”的代码
地图电影。。。

这样,您可以看到要使用的类别,并提取给定类别的列表。即使一个集合是保存电影而不是列表的更好的容器…这样你就避免了重复。无论如何,通过使用面(集合或列表)将为您提供更大的灵活性,以选择您想要的后续wathever实现…甚至不同类别的实现,例如:对于Action LinkedList,而对于喜剧ArrayList。

请发布代码。为什么不使用以类别为键、以电影列表为值的地图。我想它应该使用SQLite来完成这个任务,你可以选择吗?Java有几种实现。或者你必须绝对使用树形图?如果SQLite是一个选项,那么它可以提供更好的可伸缩性。