使用stream和lambda来循环美化

elp*_*elp 4 java java-stream

目前我得到了这个代码:

@GetMapping("/all/")
    public Iterable<Article> getAllArticle(){
        ArrayList<ArticleEntity> articleEntities = Lists.newArrayList(articleProviderComponent.getAllArticle());
        ArrayList<Article> articles = Lists.newArrayList();
        for(ArticleEntity articleEntity : articleEntities){
            articles.add(ArticleMapper.articleEntity2Article(articleEntity));
        }
        return articles;
    }
Run Code Online (Sandbox Code Playgroud)

存储库返回一个Iterable,我想转换为ArrayList.除此之外,我想将每个转换Entity成一个POJO.

我尝试使用类似的 list.foreach(ArticleMapper::ArticleMapper.articleEntity2Article)工作正常,但不返回新的列表.

Swe*_*per 8

一个简单的人map会做这个工作:

List<Article> articles = articleEntities.stream()
                                        .map(ArticleMapper::articleEntity2Article)
                                        .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

map 使用给定的方法将每个元素转换为其他元素.