为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕无忌1623718 2023-12-13 14:26:04
我有一个电影对象列表,其中包含标题、制片人、导演、演员和发行年份。我需要找到给定导演执导的电影。然后将所有找到的电影存储在地图中,使用导演作为键,电影标题作为值。我想出了以下代码,但它没有找到任何电影,但实际上数据有几部电影是由给定导演执导的。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个赞

如果没有额外的信息,很难判断出了什么问题。不过,我建议您执行以下操作来解决您的问题:

  1. 添加一个hasDirector(String)方法,Movie返回true电影是否有给定的导演

  2. 添加单元测试以确保其有效

  3. 添加一个hasAllDirectors(String[])方法,Movie返回true电影是否包含所有给定导演的信息

  4. 添加单元测试以确保其有效

  5. 将您的代码隐藏movieList.stream().filter(m -> m.hasAllDirectors(directorArray))directoryArrayString[]

  6. 添加单元测试以确保其有效

如果仍然不起作用,请返回此论坛


查看完整回答
反对 回复 2023-12-13
  • 1 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信