先有一个posts集合 里面有文章名称和文章内容和一个文章类型ID,还有另一个集合是文章类型集合tags有类型ID和类型名称以及类型说明。现在已经迭代输出了posts集合,但是文章类型一块我要输出ID对应的类型名称,相当于循环中需要查询另外一个集合的内容匹配。应该怎么操作呢?
1条回答
你知我知皆知 2024-08-02 04:03关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
你可以使用Java Stream API中的filter方法来实现这个需求。首先,你需要将posts集合转换为一个包含所有文章类型的集合,然后在过滤器中根据文章类型ID从文章类型集合中获取相应的类型名称。
以下是一个示例代码:
import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { // 假设posts集合已经存在 List<Post> posts = // ... // 获取所有的文章类型 List<Tag> tags = TagRepository.findAll(); // 将posts集合转换为包含所有文章类型的集合 List<String> allTags = tags.stream().map(tag -> tag.getName()).collect(Collectors.toList()); // 使用filter方法过滤出与每个文章类型ID相匹配的文章类型名称 List<String> matchingTags = posts.stream() .filter(post -> post.getTagId() == 1) // 取第一个例子中的1作为示例 .map(Post::getName) .collect(Collectors.toList()); System.out.println(matchingTags); // 输出:[文章标题] } } class Post { private int id; private String name; private String content; private int typeId; // 文章类型ID // getters and setters }在这个示例中,我们首先创建了一个包含所有文章类型的列表,然后使用Stream API的filter方法筛选出与每个文章类型ID匹配的文章类型名称。最后,我们将这些文章类型名称存储在一个新的列表中并打印出来。
解决 无用评论 打赏 举报