java - Java Stream Filter 问题将流式值与所有列表值进行比较
问题描述
我需要一些帮助来解决我遇到的一个小问题。
私人的
我的问题在这条线上
私人的
该列表充满了一些“列入白名单”的 id,我想将当前的 id(流式传输)与列表的所有值进行比较。并且只有当该值与列表 ID 中的一个匹配时,才让它进入下一步。谢谢帮助。
解决方案
对具有给定类别的每个 Quiz 对象进行顺序搜索quizList
对性能不利。
您应该转换quizList
为Set
更快的查找。
Set<Integer> quizIds = quizList.stream()
.map(Quiz::getId)
.collect(Collectors.toSet());
return hibernateQuizJpaRepository.findAllByCategorySetContaining(new HibernateQuizCategory(quizCategoryId))
.stream()
.filter(current -> quizIds.contains(current.getId()))
// ...
推荐阅读
- javascript - 如何使用 AJAX 和 Ruby on Rails 以新日期更新预订表?
- r - 在 R 中为自定义函数运行遗传算法时出错
- python - PyCharm 在重置后添加颜色反转 % 和新行
- javascript - React JS 组件在传递 props 时重新渲染,尽管有回调
- python - 用案例替换 Python 字符串
- ruby-on-rails - 在 Rails 范围查询中使用多个表
- php - 如何从 docker 容器调用本地资源?
- visual-studio-code - 如何在浏览器 preveiw 中使用 firefox?
- javascript - jQuery 数据表保留过滤器和搜索参数
- spring-boot - QueryDsl 的 Spring Data Web 支持在应用程序启动时偶尔工作;定制器并不总是被调用