首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将以下代码转换为Java 8流?

如何将以下代码转换为Java 8流?
EN

Stack Overflow用户
提问于 2017-06-07 03:06:02
回答 2查看 80关注 0票数 0

我想知道是否有可能将以下代码转换为Java8Stream?

代码语言:javascript
复制
List<Borg> newBorgMembers = new ArrayList<>();

// mankind is a List<Individual>
mankind.forEach(id -> newBorgMembers.add(new Borg(id)));

理想结构:

代码语言:javascript
复制
List<Borg> newBorgMembers = mankind.stream().filter().map().collect()

这个问题来自一个教程,提示使用的是filtermap。对我来说,困难在于如何添加元素而不启动空的持卡器List<Borg>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-07 03:34:01

这里是您的流的一小部分代码。

代码语言:javascript
复制
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class StreamTest {

    public static void main(String[] args) {
        // Initialize mankind
        List<Individual> mankind = new ArrayList<>();
        mankind.add(new Individual("A"));
        mankind.add(new Individual("B"));
        mankind.add(new Individual("C"));


        // The stream
        List<Borg> newBorgMembers = mankind.stream().map(individual -> new Borg(individual.id)).collect(Collectors.toList());

        newBorgMembers.forEach(borg -> System.out.println(borg.id));
    }
}

class Individual {
    String id;
    public Individual(String id) {
        this.id = id;
    }


}
class Borg {
    String id;

    public Borg(String id) {
        this.id = id;
    }

}
票数 0
EN

Stack Overflow用户

发布于 2017-06-07 08:39:42

或者更好一点:

代码语言:javascript
复制
 mankind.stream()
        .map(Individual::getId)
        .map(Borg::new)
        .collect(Collectors.toList());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44402829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档