猿问

如何使用流搜索 List<strings> 包含给定字符串数组[]的所有值?

我有一个电影对象列表,其中包含标题、制片人、导演、演员和发行年份。我需要找到给定导演执导的电影。然后将所有找到的电影存储在地图中,使用导演作为键,电影标题作为值。我想出了以下代码,但它没有找到任何电影,但实际上数据有几部电影是由给定导演执导的。


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));


慕无忌1623718
浏览 105回答 1
1回答

叮当猫咪

如果没有额外的信息,很难判断出了什么问题。不过,我建议您执行以下操作来解决您的问题:添加一个hasDirector(String)方法,Movie返回true电影是否有给定的导演添加单元测试以确保其有效添加一个hasAllDirectors(String[])方法,Movie返回true电影是否包含所有给定导演的信息添加单元测试以确保其有效将您的代码隐藏movieList.stream().filter(m -> m.hasAllDirectors(directorArray))到directoryArrayString[]添加单元测试以确保其有效如果仍然不起作用,请返回此论坛
随时随地看视频慕课网APP

相关分类

Java
我要回答