我有一个电影对象列表,其中包含标题、制片人、导演、演员和发行年份。我需要找到给定导演执导的电影。然后将所有找到的电影存储在地图中,使用导演作为键,电影标题作为值。我想出了以下代码,但它没有找到任何电影,但实际上数据有几部电影是由给定导演执导的。String directors = "Wes Craven,John Carpenter,Alfred Hitchcock";String[] st = directors.split(",");Map<String,List<String>> map = data.stream() .filter(movie -> movie.getDirectors().contains(st[0]) && movie.getDirectors().contains(st[1]) && movie.getDirectors().contains(st[2])) .collect(Collectors.toMap(Movie::getTitle),m-> m.getDirectors());map.forEach((m,n) -> System.out.println(m+" : "+n));
1 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
如果没有额外的信息,很难判断出了什么问题。不过,我建议您执行以下操作来解决您的问题:
添加一个
hasDirector(String)
方法,Movie
返回true
电影是否有给定的导演添加单元测试以确保其有效
添加一个
hasAllDirectors(String[])
方法,Movie
返回true
电影是否包含所有给定导演的信息添加单元测试以确保其有效
将您的代码隐藏
movieList.stream().filter(m -> m.hasAllDirectors(directorArray))
到directoryArray
String[]
添加单元测试以确保其有效
如果仍然不起作用,请返回此论坛
添加回答
举报
0/150
提交
取消