cbkhtd789 2014-05-30 06:51 采纳率: 0%
浏览 770

OGNL集合一个值怎么投影到另外一个集合的值上

先有一个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匹配的文章类型名称。最后,我们将这些文章类型名称存储在一个新的列表中并打印出来。

    评论

报告相同问题?