集合:映射对象

时间:2015-06-02 10:11:32

标签: java collections

假设我有两个List,一个用于Movie,另一个用于Genre。我想将一个或多个Genre映射到一个Movie和/或将一个或多个Movie映射到一个Genre。我该怎么做?

4 个答案:

答案 0 :(得分:0)

Java Map-interface用于将对象映射到其他对象。 Map<Movie, List<Genre>> List Genre Movie Map<Genre, List<Movie>> {{1}} {{1}} {{1}} {{1}}。{/ 1}}。

如果你想要一张双向地图,there is already a question for that

答案 1 :(得分:0)

您应该使用的集合是Map<String, List<String>>

要将一个或多个流派映射到电影,您应该使用: Map<movie, List<genre>>

要将一部或多部电影映射到流派,您应该使用: Map<genre, List<movie>>

答案 2 :(得分:0)

我想......就是这样:

Movie f = new Movie("fight club"); // for example..
List<Genre> genres = ...; 
genres.add(new Genre("comic"));
genres.add(new Genre("horror"));

Map <Movie,List<Genre>> movieGenres = new HashMap<Movie,List<Genre>>();

movieGenres.add(f,genres);

答案 3 :(得分:0)

使用适当的地图实施。

Map<String, MyObject> map = new HashMap<String, MyObject>();

我建议你看一下Guava multimap

Multimap<String, String> multimap = ArrayListMultimap.create();
multimap.put("action", "rambo");
multimap.put("action", "terminator");
multimap.put("thriller", "rambo");

System.out.println(multimap.get("action"));
System.out.println(multimap.get("thriller"));